📌  相关文章
📜  在 shell 脚本中打印 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:23:19.260000             🧑  作者: Mango

在 shell 脚本中打印 - Shell-Bash

简介

Shell 脚本是一种在 Linux 和 Unix 系统中非常常用的编程语言,可用于完成许多日常任务和自动化工作。在编写 Shell 脚本时,经常需要使用 echoprintf 等命令打印输出信息。

本文介绍如何在 Shell 脚本中打印输出。

使用 echo

echo 命令是 shell 命令中最常用的命令之一,主要用于输出文本信息。

打印一行文本

打印一行文本非常简单,只需要在 echo 命令后跟上需要输出的文本即可。

echo "Hello, world!"

输出:

Hello, world!

需要注意的是,echo 命令默认会在输出的文本末尾添加一个换行符,如果不需要添加,可以使用 -n 选项:

echo -n "Hello, "
echo "world!"

输出:

Hello, world!
打印变量的值

在 Shell 脚本中,经常需要输出变量的值。可以使用 $ 符号和变量名的方式来打印变量的值:

name="Shell-Bash"
echo "Hello, $name!"

输出:

Hello, Shell-Bash!

需要注意的是,echo 命令默认会对变量值进行字符串展开,如果变量的值中包含空格等特殊字符,可能会导致输出结果不符合预期。为了避免这种情况,可以使用引号将变量括起来:

greeting="Hello, World!"
echo "$greeting"

输出:

Hello, World!

如要在文本中添加单引号,可以使用双引号将文本括起来;如果要添加双引号,则需要使用反斜杠 \ 来转义:

echo "Today is $(date)"
echo "She said, \"Hello.\""

输出:

Today is Sat Aug 28 16:48:13 CST 2021
She said, "Hello."
使用 printf

printf 命令是类似于 C 语言的格式化输出函数,可以根据格式字符串和参数来生成输出结果。

打印格式化字符串

printf 命令的格式字符串由普通字符和转换说明符组成,转换说明符以 % 符号开头。

下面是一些常用的转换说明符:

| 转换说明符 | 说明 | |------------|----------------------------------------------------------------------------------------| | %s | 字符串 | | %d | 十进制整数 | | %f | 浮点数 | | %e | 科学计数法浮点数 | | %x | 十六进制整数,小写字母 | | %X | 十六进制整数,大写字母 | | %o | 八进制整数 | | %c | 单个字符 | | %% | 百分号 | | %p | 指针地址 | | %u | 无符号十进制整数 | | %g | 自动选择 %f%e 输出浮点数,除非指定了精度或数据太大无法输出,则自动选择 %e |

举个例子,下面的命令使用 printf 打印了一个格式化字符串:

#!/bin/bash

printf "Hello, %s! Today is %s.\n" "world" "$(date)"

输出:

Hello, world! Today is Sat Aug 28 16:48:13 CST 2021.

需要注意的是,在格式字符串中必须使用转义符 \n 来表示换行符,而不能直接使用换行符。

指定输出格式

可以使用各种选项来自定义输出格式。

下面是一些常用的选项:

| 选项 | 说明 | |------|--------------------------------------------------------| | - | 左对齐 | | + | 强制在数字前面添加 + 符号 | | 0 | 数字左边填充 0,而不是默认的空格 | | . | 指定浮点数保留的小数位数或字符串截取的长度 | | - | 宽度,指定输出的最小字符数或数值填充的最小字段宽度 |

举个例子,下面的命令使用 printf 打印了一个格式化的数字:

#!/bin/bash

value=123

printf "The value is %+10d\n" $value

输出:

The value is      +123

在上面的命令中,%+10d 表示把 $value 的值格式化为十进制整数,并在前面添加 + 符号(如果是正数),左对齐,并在宽度不足 10 的情况下在左侧填充空格。

总结

通过本文的介绍,你学会了如何在 Shell 脚本中使用 echoprintf 命令来打印输出信息。无论是简单的文本还是复杂的格式化字符串,都可以使用这两个命令来实现。现在,你可以更方便地编写 Shell 脚本完成各种任务了。