经常需要和shell命令打交道,但是一直没有系统的学习,接下来会花1到2个月的时间系统的学习一下shell命令,接下来就开启shell命令的奇妙旅行吧。本章主要介绍shell的打印输出。
知识要点
格式替代符 有一些常用的格式替代符会经常在打印输出中被用到,格式替代符只能用在printf输出中。 %-5s:表示5个字符宽度,其中的-表示左对齐 %-4.2f:其中的f表示浮点型,4.2代表长度为4个字符且小数点2位,如果小数点超过2会进行四舍五入,-表示左对齐。 整形: %d:整数的参数会被转成一有符号的十进制数字 %u:整数的参数会被转成一无符号的十进制数字 %o:整数的参数会被转成一无符号的八进制数字 %x:整数的参数会被转成一无符号的十六进制数字, 并以小写abcdef表示 %X:整数的参数会被转成一无符号的十六进制数字, 并以大写ABCDEF表示
%f double型的参数会被转成十进制数字, 默认取小数点以下六位, 四舍五入 %e double型的参数以指数形式打印, 有一个数字会在小数点前, 六位数字在小数点后, 而在指数部分会以小写的e来表示. %E 与%e作用相同, 唯一区别是指数部分将以大写的E来表示. %g double型的参数会自动选择以%f或%e的格式来打印, 其标准是根据欲打印的数值及所设置的有效位数来决定. %G 与%g作用相同, 唯一区别在以指数形态打印时会选择%E格式.
%c 读字符串的第一个字符 %s 输出指定宽度的字符内容. %p 如果是参数是"void *"型指针则使用十六进制格式显示
打印输出 在写脚本的时候更多的会使用echo作为打印输出,且习惯性的会使用双引号。 echo [root@localhost tmp]# echo "hello word" hello word printf 默认printf是不换行的 [root@localhost tmp]# printf "hello word" hello word[root@localhost tmp]# 需要换行加上\n参数 [root@localhost tmp]# printf "hello word\n" hello word [root@localhost tmp]# 编写shell脚本 vim scrip.sh #!/bin/bash printf "%-5s %-10s %-4s\n" No Name Mark; printf "%-5s %-10s %-4.2f\n" 1 aaa 10.111; printf "%-5s %-10s %-4.2f\n" 2 bbb 20.146; 授予脚本执行权限:chmod u x scrip.sh
如果使用echo就不能用格式替代符 #!/bin/bash echo No Name Mark; echo 1 aaa 10.111; echo 2 bbb 20.146;
注意事项 在echo,printf中使用-e,-n参数时,-e,-n应该出现在命令行其它字符之前。 -e:如果要在echo的双引号使用转义序列作为参数得需要使用-e参数 -n:忽略末尾的换行符 不使用-e参数 [root@localhost tmp]# echo "1\n2" 1\n2 使用-e参数 [root@localhost tmp]# echo -e "1\n2" 1 2 转义序列: /n:换行 /t:tab键
彩色输出 字体颜色包括:0=重置,30=黑色,31=红色,32=绿色,33=黄色,34=蓝色,35=洋红,36=青色,37=白色 背景颜色包括:0=重置,40=黑色,41=红色,42=绿色,43=黄色,44=蓝色,45=洋红,46=青色,47=白色 echo -e "\e[1;32m hello word \e[0m" \e[1;32m:将字体颜色设为绿色,\e[0m:将颜色重置 总结如果输出的内容涉及到特殊字符建议使用printf来输出。 来源:http://www./content-3-72151.html |
|