echo(选项)(参数)选项
-e:激活转义字符。使用-e选项时,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:
-n:不换行输出,常与-e参数结合使用:echo -en "**"
•a 发出警告声;
• 删除前一个字符;
•c 最后不加上换行符号;
•f 换行但光标仍旧停留在原来的位置;
•
换行且光标移至行首;
•
光标移至行首,但不换行;
• 插入tab;
•v 与f相同;
•\ 插入字符;
•
nn 插入nnn(八进制)所代表的ASCII字符;
- 常用实例:
echo -e "this is
test"
echo -n 不换行输出
$echo -n "123"
$echo "456"
最终输出
123456
终端中生成彩色文本
针对以下彩色文本使用缺陷做一点补充,以下内容在颜色设置功能上没有问题,但在命令行输入超长的字符串时会造成命令行错乱,不能换行
解决方法是将命令添加完整如下:
export PS1='[e[1;33m][u@h W]$ [e[0m]'
也就是将'e[1;33m][u@h W]$ e[0m]' 改成 '[e[1;33m][u@h W]$ [e[0m]' 既可
以下内容使用时注意添加[
文本颜色是由对应的色彩码来描述的。其中包括:
重置=0,黑色=30,红色=31,绿色=32,
黄色=33,蓝色=34,洋红=35,青色=36,白色=37。
要打印彩色文本,可输入如下命令:
echo -e "e[1;31m This is red text e[0m"
Note:其中 e[1;31m 是一个转义字符串,可以将颜色设为红色, e[0m 将颜色重新置回。只需要将 31 替换成想要的色彩码就可以了。
对于彩色背景,经常使用的颜色码是:
重置=0,黑色=40,红色=41,绿色=42,黄色=43,
蓝色=44,洋红=45,青色=46,白色=47。
*要设置彩色背景的话,可输入如下命令:
echo -e "e[1;42m Green Background e[0m"
Note:这些例子中包含了一些转义序列。可以使用 man console_codes 来查看相关文档。
示例
[zhangfd@localhost shell]$ cat printf1.sh
#!/bin/bash
## filename:printf.sh
echo -e "e[1;32m `printf "%-5s %-10s %-6s
" No Name Mark` e[0m"
echo -e "e[1;46m `printf "%-5s %-10s %-s
" - --- ----
printf "%-5s %-10s %-6.4f
" 1 Sarath 80.3456
printf "%-5s %-10s %-6.4f
" 2 James 90.9989
printf "%-5s %-10s %-6.4f
" 3 Jeff 77.564
printf "%-5s %-10s %-6.4f
" 4 zhangfd 299999990.33`
e[0m"
输出
echo 修改终端提示字符串
echo "expport PS1='e[1;35m][u@h W]$ e[0m]'" >>/etc/profile
source /etc/profile
PS1='e[1;35m][u@h W]$ e[0m]'
输出效果