Shell echo命令
Shell 的 echo 指令与 PHP 的 echo 指令类似,都是用于字符串的输出。命令格式:
echo string
1.显示普通字符串:
echo "It is a test" //双引号省略效果相同
2.显示转义字符
echo "\"It is a test\""
3.显示变量
read 命令(类似C语言的scanf)从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量
#!/bin/bash
read cmd
echo "${cmd} It is a test"
4.显示换行
#!/bin/bash
echo -e "OK! \n" # -e开启转义
echo "It is a test"
5.显示不换行
#!/bin/sh
echo -e "OK! \c" # -e 开启转义 \c 不换行
echo "It is a test"
6.显示结果定向至文件
echo "It is a test" > myfile
7.原样输出字符串,不进行转义或取变量(用单引号)
echo '$name\"'
8.显示命令执行结果
echo `date`
注意: 这里使用的是反引号 `, 而不是单引号 '。
结果将显示当前日期
Shell printf 命令
printf 由 POSIX 标准所定义,因此使用 printf 的脚本比使用 echo 移植性好。
printf 使用引用文本或空格分隔的参数,外面可以在 printf 中使用格式化字符串,还可以制定字符串的宽度、左右对齐方式等。默认的 printf 不会像 echo 自动添加换行符,我们可以手动添加 \n。
printf 命令的语法:
printf format-string [arguments...]
参数说明:
- format-string: 为格式控制字符串
- arguments: 为参数列表。
echo "Hello, Shell"
Hello, Shell
printf "Hello, Shell\n"
Hello, Shell
高级用法
#!/bin/bash
#print用法
printf "%-10s %-8s %-4s\n" 姓名 性别 体重kg
printf "%-10s %-8s %-4.2f\n" 小明 男 66
printf "%-10s %-8s %-4.2f\n" 小峰 男 77
printf "%-10s %-8s %-4.2f\n" 小红 女 41
%s %c %d %f 都是格式替代符,%s 输出一个字符串,%d 整型输出,%c 输出一个字符,%f 输出实数,以小数形式输出。
%-10s 指一个宽度为 10 个字符(- 表示左对齐,没有则表示右对齐),任何字符都会被显示在 10 个字符宽的字符内,如果不足则自动以空格填充,超过也会将内容全部显示出来。
%-4.2f 指格式化为小数,其中 .2 指保留2位小数。
printf 的转义序列
Shell test
Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。
#!/bin/bash
#print用法
num1=100
num2=100;
if test $[num1] -eq $[num2]
then
echo '两个数相等!'
else
echo '两个数不等!'
fi
代码中的 [] 执行基本的算数运算
字符串测试
文件测试
另外,Shell 还提供了与( -a )、或( -o )、非( ! )三个逻辑操作符用于将测试条件连接起来,其优先级为: ! 最高, -a 次之, -o 最低。
参考:Shell test 命令 | 菜鸟教程 (runoob.com)