9、printf命令
默认不会在字符串末尾添加换行符。
printf "%10d.\n" 123 # 占10位,右对齐
printf "%-10.2f.\n" 123.123321 # 占10位,保留2位小数,左对齐
printf "My name is %s\n" "szddd" # 格式化输出字符串
printf "%d * %d = %d\n" 2 3 `expr 2 \* 3` # 表达式的值作为参数
输出:
123.
123.12 .
My name is szddd
2 * 3 = 6
10、test命令与判断符号[]
&& 表示与,|| 表示或
二者具有短路原则
表达式的exit code为0,表示真;为非零,表示假。(与C/C++中的定义相反)
10.1文件类型判断
test -e filename # 判断文件是否存在
测试参数 | 代表意义 |
-e | 文件是否存在 |
-f | 是否为文件 |
-d | 是否为目录 |
10.2文件权限判断
test -r filename # 判断文件是否可读
测试参数 | 代表意义 |
-r | 文件是否可读 |
-w | 文件是否可写 |
-x | 文件是否可执行 |
-s | 是否为非空文件 |
10.3整数间的比较
test $a -eq $b # a是否等于b
测试参数 | 代表意义 |
-eq | a是否等于b |
-ne | a是否不等于b |
-gt | a是否大于b |
-lt | a是否小于b |
-ge | a是否大于等于b |
-le | a是否小于等于b |
10.4字符串比较
测试参数 | 代表意义 |
test -z STRING | 判断STRING是否为空,如果为空,则返回true |
test -n STRING | 判断STRING是否非空,如果非空,则返回true(-n可以省略) |
test str1 == str2 | 判断str1是否等于str2 |
test str1 != str2 | 判断str1是否不等于str2 |