Shell 终端打印

作者: lujg12 | 来源:发表于2018-04-21 13:27 被阅读0次

参考书籍 Linux shell 脚本攻略


能够执行打印的方法有很多,格式也各不相同,主要有如下几个:

  • echo
  • printf
echo命令

echo是用于终端打印的基本命令。

  • 默认情况下,echo在每次调用后会添加一个换行符。可使用标志-n来忽略结尾的换行符。
  • 可接受双引号字符串内的转义序列作为参数,采用echo -e "包含转义序列的字符串"的形式。如: echo -e "1\t2\t3"
  • 三种打印方法:
$ echo "Hello world" #带双引号的文本
Hello world
$ echo Hello world #不带双引号的文本
Hello world
$ echo 'Hello world' #带单引号的文本
Hello world

每种方法的副作用如下:

  • 如果希望打印 !号,就不要将其放入双引号,或者加入转义字符\!转义
$ echo Hello world!
$ echo 'Hello world!
$ echo "Hello world\!"
  • 不带引号的echo中,无法在要显示的文本中使用分号;
  • 使用单引号的echo时,Bash不会对单引号中的变量求值,而只是原样显示
$ var=3
$ echo '$var'
$var
$ echo "$var"
3
printf命令

printf使用的参数和C语言中的printf函数一样。

  • printf使用引用文本或由空格分隔的参数。
    printf可使用格式化字符串,可以指定字符串的宽度、左右对其方式等。
  • 不会自动添加换行符,需要在需要的时候手动添加
#!/bin/bash
#文件名: printf.sh
printf "%-5s %-10s %-4s \n" No Name Mark
printf "%-5s %-10s %-4.2f\n" 1 Sarach 80.3456
printf "%-5s %-10s %-4.2f\n" 2 James 90.9989

格式化输出如下:

No    Name       Mark
1     Sarach     80.35
2     James      91.00
  • %s %c %d %f都是格式替代符,其所对应的参数可以置于带引号的格式字符串之后。
  • %-5s-表示左对其,若不用-指定对其形式,则默认使用右对其形式。数字指定了宽度。

相关文章

网友评论

    本文标题:Shell 终端打印

    本文链接:https://www.haomeiwen.com/subject/gkcxlftx.html