|
【shell命令】Linux下echo命令用法详解
1. echo命令介绍
echo命令是脚本语言中的常用命令,作用相当于C语言里面的printf。在shell中,可以打印变量的值,或者输出指定的字符串,可以将结果写入到文件,也可以打印在终端。echo命令可以在显示器上显示一段文字,起到提示的作用,对于调试非常有帮助。
在终端输入help echo即可查看echo的命令详情:
echo: echo [-neE] [arg ...]
Write arguments to the standard output.
Display the ARGs, separated by a single space character and followed by a
newline, on the standard output.
Options:
-n do not append a newline
-e enable interpretation of the following backslash escapes
-E explicitly suppress interpretation of backslash escapes
`echo' interprets the following backslash-escaped characters:
\a alert (bell)
\b backspace
\c suppress further output
\e escape character
\E escape character
\f form feed
\n new line
\r carriage return
\t horizontal tab
\v vertical tab
\\ backslash
\0nnn the character whose ASCII code is NNN (octal). NNN can be
0 to 3 octal digits
\xHH the eight-bit character whose value is HH (hexadecimal). HH
can be one or two hex digits
Exit Status:
Returns success unless a write error occurs.
2. 命令参数解释
字符 含义
-n 不自动换行
-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数字
3. echo使用实例
echo命令使用方法较多,我们通过实例来列举常用用法,只要参考这些实例即可满足我们日常的编程和调试需要。
3.1 字符串输出
字符串输出到终端显示是最简单的用法。
echo 'Hello World'
3.2 单引号与双引号
echo后的单引号表示强引用,单引号里面是什么内容就输出什么,而双引号是弱引用,变量的值会代替变量名输出。
3.3 转义字符可用
当我们需要使用特殊转义字符时(特殊转义字符见上面命令参数详解表格),需要指定参数-e,格式为
echo -e 处理特殊字符
3.4 输出字符串带颜色
在打印log时,我们经常要突出显示一些提示文字,比如Error用红色,Waring用黄色,便于第一时间发现问题。
输出文字带颜色需要结合-e选项和“\033”一块使用,格式为
echo –e "\033[颜色m 字符串 \033[0m"
3.5 写入文件
以覆盖方式写入文件,写入语句会覆盖目标文件原有内容,保证文件保存的始终是最新内容。
echo "Hello World" > hello.txt
以追加方式写入文件,写入语句不会覆盖目标文件原有内容,只会追加在文件末尾。追加方式适用于记录运行log,便于后期问题分析。
echo "Hello World" >> hello.txt
两种写入方式区别在于指向符,>覆盖,>>追加。
3.6 输出时间
获取当前系统时间并输出,在打印Log时可以记下当前的系统时间,或者在编译程序时,可以记下编译时的系统时间,便于回溯和版本跟踪。
current_time=$(date "+%Y-&m-%d %H:%M:%S")
echo '['$current_time']'"Hello World" >> hello.txt
|
+10
|