文章目录
Shell echo命令
Shell 的 echo 指令与 PHP 的 echo 指令类似,都是用于字符串的输出。命令格式:echo string
1、显示普通字符
2、显示转义字符
3、显示变量
Read命令从标准输入中读取一行,并把输入行的每个字段的值制定给Shell变量.
4、显示换行
5、显示不换行
6、显示结果定向至文件
注:执行该程序,会将 It is a test 写入 bash.sh 文件中。
7、原样输出字符串,不进行转义或取变量(用单引号)
8、显示命令执行结果
注:这儿使用的是反引号 ` 而不是单引号 ’ 。
Shell printf命令
1.printf 命令模仿 C 程序库(library)里的 printf() 程序。
2.printf 由 POSIX 标准所定义,因此使用 printf 的脚本比使用 echo 移植性好。
3.printf 使用引用文本或空格分隔的参数,外面可以在 printf 中使用格式化字符串,还可以制定字符串的宽度、左右对齐方式等。默认 printf 不会像 echo 自动添加换行符,我们可以手动添加 \n。
printf命令的语法:printf format-string [arguments . . .]
format-string:格式控制字符串
arguments:参数列表
echo 和 printf 的区别:
注:如果不加 \n 将不会转行。
Printf的功能作用:
注:
1.%s %c %d %f都是格式替代符;
2.%-10s 指一个宽度为10个字符(-表示左对齐,没有则表示右对齐),任何字符都会被显示在10个字符宽的字符内,如果不足则自动以空格填充,超过也会将内容全部显示出来;
3.%-4.2f 指格式化为小数,其中.2指保留2位小数。
Printf 的转义序列
| 序列 | 说明 |
| \a | 警告字符,通常为ASCⅡ的BEL字符 |
| \b | 后退 |
| \c | 抑制(不显示)输出结果中任何结尾的换行字符(只在%b格式指示符控制下的参数字符串中有效),而且,任何留在参数里的字符、任何接下来的参数以及任何留在格式字符串中的字符,都被忽略 |
| \f | 换页(formfeed) |
| \n | 换行 |
| \r | 回车(Carriage return) |
| \t | 水平制表符 |
| \v | 垂直制表符 |
| \\ | 一个字面上的反斜杠字符 |
| \ddd | 表示1到3位数八进制值的字符,仅在格式字符串中有效 |
| \0ddd | 表示1到3位的八进制值字符 |
Shell test命令
test命令用于检查某个条件是否成立,可以进行数值、字符和文件三个方面的测试。
1、数值测试
| 参数 | 说明 |
| -eq | 等于则为真 |
| -ne | 不等于则为真 |
| -gt | 大于则为真 |
| -ge | 大于等于则为真 |
| -lt | 小于则为真 |
| -le | 小于等于则为真 |
在代码中的 [ ] 执行基本的算数运算:
2、字符串测试
| 参数 | 说明 |
| = | 等于则为真 |
| != | 不等于则为真 |
| -z字符串 | 字符串的长度为零则为真 |
| -n字符串 | 字符串的长度不为零则为真 |
3、文件测试
| 参数 | 说明 |
| -e文件名 | 如果文件存在则为真 |
| -r文件名 | 如果文件存在且可读则为真 |
| -w文件名 | 如果文件存在且可写则为真 |
| -x文件名 | 如果文件存在且可执行则为真 |
| -s文件名 | 如果文件存在且至少有一个字符则为真 |
| -d文件名 | 如果文件存在且为目录则为真 |
| -f文件名 | 如果文件存在且为普通文件则为真 |
| -c文件名 | 如果文件存在且为字符型特殊文件则为真 |
| -b文件名 | 如果文件存在且为特殊文件则为真 |
另外,Shell还提供了与(-a)、或(-o)、非(!)三个逻辑操作符用于将测试条件连接起来,其优先级为:“!”最高,“-a”次之,“-o”最低。