echo命令
Shell的echo指令用于字符串的输出
- 显示变量 read命令从标准输入中读取一行,并把输入行的每个字段的值指定给shell变量
#! /bin/sh
read name
echo "$name It is a test"
以上代码保存为test.sh,name接收标准输入的变量,结果将是
sh test.sh
OK #标准输入
OK It is a test #输出
- 显示换行/不显示换行
echo -e "ok! \n" #-e 开启转义
echo "It is a test"
echo -e "OK! \c"
echo "It is a test"
输出结果:
Ok!
It is a test
Ok! It is a test
- 显示解雇定向至指定文件
echo "It is a test" > myfile
- 原样输出字符串,不进行转义或取变量值(用单引号)
echo
$name\"
输出结果:
$name"
- 显示命令执行结果
echo
date
printf命令
printf 命令模仿C程序库里的printf()程序。printf由POSIX(表示可移植操作系统接口)标准所定义,因此使用printf比echo移植性好。printf使用引用文本或空格分隔的参数。默认printf不会像echo自动添加换行符,我们可以手动添加\n.
#!/bin/bash
printf "%-10s %-8s %-4s\n" 姓名 名别 体重kg
printf "%-10s %-8s %-4.2f\n" 完颜洪烈 男 60.2340
printf "%-10s %-8s %-4.2f\n" 郭靖 男 65
printf "%-10s %-8s %-4.2f\n" 黄蓉 女 45
执行脚本,输出结果
姓名 名别 体重kg
完颜洪烈 男 60.23
郭靖 男 65.00
黄蓉 女 45.00
%s %c %d 都是格式替换符
%-10s指一个宽度为10个字符(-表示左对齐,没有则表示右对齐),任何字符都会被显示在10个字符宽的字符内,如果不足则自动以空格填充,超过也会将内容全部显示出来
%-4.2f 指格式化为小数,其中.2值保留2w位小数