命令作用
- 输出一行字符串
- 在shell中,可以打印变量的值
- 输出结果写入到文件
- 在显示器上显示一段文字,起到提示的作用
语法
echo [选项] [字符串]
参数
字符 | 含义 |
---|---|
-n | 不自动换行 |
-e | 解释转义字符 |
-E | 不解释转义字符 |
如果-e有效,则识别以下序列:
字符 | 含义 |
---|---|
\a | 发出警告声 |
\b | 转义后相当于按退格键(backspace) ,但前提是"\b"后面存在字符; “\b"表示删除前一 一个字符,”\b\b" 表示删除前两个字符。 |
\c | 不换行输出,在"\c"后面不存在字符的情况下,作用相当于echo -n;但是当"\c"后面仍然存在字符时,"\c"后面的字符将不会被输出。 |
\e | escape,相当于 \033 |
\E | 与\e相同 |
\f | 换行,但下一行内容起始位置和上一行从\f处换行的位置对齐 |
\n | 换行且光标移至行首 |
\r | 换行字符,光标移至行首,输出\r后面的内容 |
\t | 转以后表示插入tab,即横向制表符。 |
\v | 换行,但下一行内容起始位置和上一行从\v处换行的位置对齐 |
\ \ | 表示插入""本身。 |
\0nnn | 插入nnn(八进制)所代表的ASCII字符 |
\xHH | 插入HH(十六进制)所代表的ASCII数字 |
应用实例
1 字符串输出
将字符串输出到终端显示
echo 'Hello World'
2 单引号与双引号
echo后的单引号表示强引用,单引号里面是什么内容就输出什么;
echo后的双引号表示弱引用,变量的值会代替变量名输出。
3 转义字符可用
需要使用特殊转义字符时(特殊转义字符见上面命令参数详解表格),需要指定参数-e,格式为
echo -e 处理特殊字符
4 输出字符串带颜色
如果输出信息要突出显示一些提示文字,比如Error用红色,Waring用黄色,便于第一时间发现问题。
输出文字带颜色需要结合-e选项和“\033”一块使用,一般格式为:
echo -e “\033[字体底色;字体颜色m 字符串 \033[0m”
echo -e “\033[字体颜色m 字符串 \033[0m”
Linux中颜色号
颜色 | 字体颜色(30 ~ 37) | 背景颜色(40 ~ 47) | 字体加亮颜色(90 ~ 97) | 背景加亮颜色(100 ~ 107) |
---|---|---|---|---|
黑色 (Black) | 30 | 40 | 90 | 100 |
红色 (Red) | 31 | 41 | 91 | 101 |
绿色 (Green) | 32 | 42 | 92 | 102 |
黄色 (Yellow) | 33 | 43 | 93 | 103 |
蓝色 (Blue) | 34 | 44 | 94 | 104 |
紫色 (Purple) | 35 | 45 | 95 | 105 |
青色 (Cyan) | 36 | 46 | 96 | 106 |
白色 (White) | 37 | 47 | 97 | 107 |
- 4-1 输出无底色字符
echo -e "\033[33m Hello\033[0m"
- 4-2 输出有底色字符
echo -e "\033[44;31m Word\033[0m"
5 重定向写入文件
- 5-1 以覆盖方式写入文件
echo "Hello World" > hello.txt
- 5-2 以追加方式写入文件
echo "Hello World" >> hello.txt
6 输出时间
获取当前系统时间并记录当前的系统时间,或者在编译程序时,可以记下编译时的系统时间,便于回溯和版本跟踪。
- current_time=$(date “+%Y-%m-%d %H:%M:%S”)
- echo ‘[’ $current_time ‘]’ “Hello World” >> hello.txt