shell学习整理(2)-终端打印

来源:互联网 发布:linux lsof 编辑:程序博客网 时间:2024/05/28 05:16
与shell环境进行交互的工具,打印主要有两个命令 echo   和   printf


一. echo


$ echo "welocme"
welocme


$ echo welcome
welcome


$ echo 'welcome'
welcome


从上面可以看出,双引号,单引号或者不加引号,都可以打印出来内容,下面介绍区别
1. 如果需要打印!就不要将其放入双引号里,或者放入双引号但是在感叹号之前加转移字符(\)
e.g.  $ echo Hello world !   等同于  $ echo 'Hello world !'   等同于  $ echo “Hello world \!”




2. 不带引号是无法打印分号,因为分号是bash shell中的命令定界符


3. 变量替换在单引号中无效


4. echo接受双印字符串内转移序列做为参数,需要echo -e “包含转移序列的字符串”
e.g. 
$ echo -e "1\t2\t3"
1       2       3
$ echo -e "1\n2\n3"
1
2
3


5. 打印彩色输出,常用颜色对应码:重置=0,黑色=30,红色=31,绿色=32,黄色=33,蓝
色=34,洋红=35,青色=36,白色=37。
要设置彩色背景,经常使用的颜色码是:重置=0,黑色=40,红色=41,绿色=42,黄色=43,
蓝色=44,洋红=45,青色=46,白色=47。
e.g.
echo -e "\e[1;31m This is red text \e[0m"
输出红字字体的 This is red text
\e[1;31 将颜色设为红色, \e[0m 将颜色重新置回。只需要将 31 替换成想要的颜色码就可以了


echo -e "\e[1;41m This is red text \e[0m"
输出背景为红色的This is red text


二. printf
printf使用格式化字符串,还可以指定字符串宽度,左右对其等方式。
printf不像echo一样会自动添加换行符,必须手动添加。




$ printf "%-5s %-10s %-4s\n" No Name Mark
No    Name       Mark
%-5s  表示对应的第一个字符(No)的字符串宽度是5个字符的宽度
\n表示换行


$ printf "%-5s %-10s %-4.2f\n" 1 Sarath 80.3456
1     Sarath     80.35
%-4.2f表示4个域宽输出,保留小数点后2个小数
原创粉丝点击