Shell系列(8) - echo命令与printf 命令

109 阅读2分钟

「4月日新计划更文活动」

echo 命令

  • echo命令主要用于字符串的输出
echo string

显示普通字符串

echo  "It is  a shell test"

原样输出字符串

  • 使用''单引号,不进行转义,也不设为变量
echo '$name'

显示转义字符

  • echo不解析以反斜杠``开头的转义字符
  • 可以使用echo -e命令解析转义字符
echo  " "  Toady is a great day " "    #方法一
echo  -e " hello \nworld !"              #方法二

显示不换行

  • echo命令输出结束后会默认换行,如希望不换行 ,可以\c ,表示强制echo命令不换行,因为echo不解析以反斜杠``开头的转义字符,所以 \c需要与-e一起使用
echo -e "Toady is a great day \c" 
echo "OK !"

  • echo -n表示输出的内容不换行
echo -n "Toady is a great day"
echo -n  "and  my is very happy"
echo  "The weather looks good"

printf 命令

printf命令定义

  • printf命令:作用是按照我们指定的格式输出文本,printf中的f,代表format的意思
  • 语句格式:printf format-string [arguments...]

参数说明:

  • printf("格式控制字符串", [输出列表]);
  • format-string:为格式控制字符串
  • arguments:为参数列表

常见格式说明符:

  • %s : 字符串
  • %d:整数输出,十进制的整数
  • %f:浮点格式
  • %o:不带正负号的八进制数字
  • %%:仅仅表示%本身
printf "%-10s %-8s %-4s\n" 姓名 性别 体重kg  
printf "%-10s %-8s %-4.2f\n" 郭芙 女 47.9876

printf与echo有什么区别

  • echo默认带回车,printf默认不带,需要手动加\n
  • printf只接受第一个参数
  • 不使用格式控制符下,如果又不加引号,printf将空格视为分离不同字符串的分隔符,因此如果需要输出加空格的字符,必须要加分隔号 ;echo加与不加引号都将一次性输出所有字符