echo命令用來列印資訊,是乙個最常用的命令。在命令列中常用來列印環境變數的值,已確定當前環境中是否設定了指定的環境變數。在shell指令碼中,常用來列印資訊和幫助除錯程式。
-n 列印資訊之後不換行。
-e 對字串轉義。
[root@jfht ~]# echo $path
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/apache/apache-ant-1.7.1/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@jfht ~]#
[root@jfht ~]# echo $lang
zh_cn.gb18030
[root@jfht ~]#
網上經常有人問在linux下將預設語言更改為中文,我一般的做法是
在/etc/profile的末尾加上
export lang=zh_cn.gb18030
然後重新登入即可。但是較低版本的linux通常在某些命令的輸出中出現亂碼,比如常用的service命令。
[root@jfht ~]# echo -n "please input your name: "; read name; echo "your name is $name"
please input your name: coding
your name is coding
[root@jfht ~]#
此處使用了-n引數,避免在輸出資訊之後自動換行。
[root@jfht ~]# echo "hello\nworld"
hello\nworld
[root@jfht ~]# echo -e "hello\nworld"
hello
world
[root@jfht ~]# echo 'hello\nworld'
hello\nworld
[root@jfht ~]# echo -e 'hello\nworld'
hello
world
[root@jfht ~]# echo hello; echo world
hello
world
[root@jfht ~]#
可以使用如下轉義字元
\a 發出警告聲;
\b 刪除前乙個字元;
\c 最後不加上換行符號;
\f 換行但游標仍舊停留在原來的位置;
\n 換行且游標移至行首;
\r 游標移至行首,但不換行;
\t 插入tab;
\v 與\f相同;
\\ 插入\字元;
\nnn 插入nnn(八進位制)所代表的ascii字元;
[root@jfht ~]# echo "hello\fworld"
hello\fworld
[root@jfht ~]# echo -e "hello\fworld"
hello
world
[root@jfht ~]# echo "hello\vworld"
hello\vworld
[root@jfht ~]# echo -e "hello\vworld"
hello
world
[root@jfht ~]#
在編寫指令碼時,經常會利用管道將前乙個命令的輸出作為後乙個命令的輸入,如果要列印除錯資訊,但不把該資訊干擾後面的命令,可以將除錯資訊輸出到標準錯誤輸出,如下所示。
[root@jfht ~]# echo hello >&2
hello
[root@jfht ~]#
下面是乙個應用此技巧的指令碼片段。
bash**
# usage: proc_cmd
proc_cmd()
1. 將要輸出的資訊放在單引號、雙引號以及不放在引號中有什麼區別?
2. 怎樣輸出彩色文字(如同ls時的效果)?
linux 之 echo命令用法
echo path 顯示系統總一些變數,必須加上 usr local sbin usr local bin usr sbin usr bin sbin bin usr games usr local arm 4.3.2 bin 顯示的環境變數 echo home echo mail 其他的很多函式或...
Linux 命令 echo 顯示一行文字
echo option string n不輸出行尾的換行符。e允許對轉義字元進行解釋。e禁止對轉義字元進行解釋,這是預設的選項。help 顯示幫助資訊。version 顯示版本資訊。轉義字元 含義 反斜槓 a警報符 bel b退格符 c禁止尾隨的換行符 e換碼符 f換頁符 n換行符 r回車符 t水平...
linux指令碼之echo
1.e 扮演了轉義字元反斜線的翻譯器 eg echo e tecmint b is ba bcommunity b 會刪除字元間的所有空格 如果在終端上 使用echo,需要加上 e,如果是通過.shell.sh執行,那麼不要寫上 e 2.n 會在echo完成後不會輸出新行 c 抑制輸出後面的字元並且...