终端打印的常用命令有 echo 和 printf 两种。
先说基本用法:
echo:
1. echo Hello Word !
命令行输出:Hello Word !
2. echo 'Hello Word !'
命令行输出:Hello Word !
3. echo "Hello Word"
命令行输出:Hello Word
嗯? 为什么第三种,即双引号的方式, 跟世界打个招呼没有感情(感叹号)呢?
这就得说到这三种打印方式的差别了。
先说第三种,将输出内容放到双引号里。不能直接打印!(叹号),会提示
bash: !: event not found error
如果要打印,应该
set +H
echo "Hello Word !"
赶紧试试输出结果吧。 或者用前两种方法
那第二种呢?
单引号的打印方式也是有缺陷滴。即,打印不了变量。关于变量后面再说。
第一种也有不足吗?
答案当然是肯定的啦。很明显第一个打印不了“;”(分号)。
如果分行在句尾,直接被忽略
echo Hello Word;
命令行输出:Hello Word
如果分号在句中,还会报错呢
echo Hello; Word
命令行输出:Hello
并提示找不到Word命令
明白了吧,分号在shell里被用作命令界定符,标记一个命令的结束。
简单的输出一定掌握了吧。来点高端滴:echo 的参数
-e:识别输出内容里的转义序列
-n:忽略结尾的换行
转义不懂是可以理解的,请百度或Google之
转义懂得,是不需要讲滴,对不。还是举个例子
echo -e "Hello\tWord"
命令行输出:Hello Word
关于-n,大家肯定都看见了。echo的默认输出最后都有换行,次参数就是去掉末尾的换行滴。
有的时候吧,还真挺有用。记住哦
高端的学完还是感觉不足以拿出来炫耀,那必须来点大气上档次滴
叫做:彩色打印输出,太帅太酷啦!
作为必备背景知识,得先补充一下。别心急
先说颜色值这回事儿:
文字颜色:
重置=0 黑色=30 红色=31 绿色=32 黄色=33 蓝色=34 洋红=35 青色=36 白色=37
文字背景颜色:
重置=0 黑色=40 红色=41 绿色=42 黄色=43 蓝色=44 洋红=45 青色=46 白色=47
不多废话,赶紧上实现方式
echo -e "\e[1;31m Hello Word \e[0m"
命令行输出:Hello Word
echo -e "\e[1;41m Hello Word \e[0m" 命令行输出:Hello Word
下面隆重登场的就是printf啦
必须说明的两点是,
1.printf的默认输出没有换行,换行需要自己加“\n”
2.printf支持格式化输出,要不怎么能叫printf呢
举例几个吧
printf "%-10sWord\n" Hello
命令行输出: Hello Word
其中 “-”表示左对齐 “10”表示Hello这个字符占10个字符长度输出 “s"表示输出的是字符串String
printf "%4.2f\n" 5.12345
命令行输出:5.12
"4"还是占4个字符长度 “.2”表示输出小数点后的两位 “f”表示输出的浮点型数Float
注:内容多参照 《Linux Shell 脚步攻略》。