linux用echo显示欢迎信息,我使用过的Linux命令之echo - 显示文本、打印信息
用途說(shuō)明
echo命令用來(lái)打印信息,是一個(gè)最常用的命令。在命令行中常用來(lái)打印環(huán)境變量的值,已確定當(dāng)前環(huán)境中是否設(shè)置了指定的環(huán)境變量。在shell腳本中,常用來(lái)打印信息和幫助調(diào)試程序。
常用參數(shù)
-n 打印信息之后不換行。
-e 對(duì)字符串轉(zhuǎn)義。
使用示例
示例一 打印當(dāng)前的PATH設(shè)置
[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 ~]#
示例二 打印當(dāng)前的LANG設(shè)置(LANG為語(yǔ)系文件變量,有時(shí)系統(tǒng)中文亂碼可能就需要改變?cè)撐募?
[root@jfht ~]# echo $LANG
zh_CN.GB18030
[root@jfht ~]#
網(wǎng)上經(jīng)常有人問(wèn)在Linux下將默認(rèn)語(yǔ)言更改為中文,我一般的做法是
在/etc/profile的末尾加上
export LANG=zh_CN.GB18030
然后重新登錄即可。但是較低版本的Linux通常在某些命令的輸出中出現(xiàn)亂碼,比如常用的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參數(shù),避免在輸出信息之后自動(dòng)換行。
示例四 對(duì)輸出信息進(jìn)行轉(zhuǎ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 ~]#
可以使用如下轉(zhuǎn)義字符
\a 發(fā)出警告聲;
\b 刪除前一個(gè)字符;
\c 最后不加上換行符號(hào);
\f 換行但光標(biāo)仍舊停留在原來(lái)的位置;
\n 換行且光標(biāo)移至行首;
\r 光標(biāo)移至行首,但不換行;
\t 插入tab;
\v 與\f相同;
\\ 插入\字符;
\nnn 插入nnn(八進(jìn)制)所代表的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 ~]#
示例五 輸出到標(biāo)準(zhǔn)錯(cuò)誤輸出
在編寫(xiě)腳本時(shí),經(jīng)常會(huì)利用管道將前一個(gè)命令的輸出作為后一個(gè)命令的輸入,如果要打印調(diào)試信息,但不把該信息干擾后面的命令,可以將調(diào)試信息輸出到標(biāo)準(zhǔn)錯(cuò)誤輸出,如下所示。
[root@jfht ~]# echo hello >&2
hello
[root@jfht ~]#
下面是一個(gè)應(yīng)用此技巧的腳本片段。
Bash代碼
?
#?usage:?proc_cmd
proc_cmd()
{
CMD=$1
NUM=$(get_estimate_count?$CMD)
#?只有返回?cái)?shù)值的時(shí)候才打印信息,否則出錯(cuò)了
if?[?"$NUM"];?then
printf?"%-48s\t%16s\n"$CMD????$NUM
else
echo?$CMD?>&2
echo?$CMD?>>failed.dat
fi
}
# usage: proc_cmd
proc_cmd()
{
CMD=$1
NUM=$(get_estimate_count $CMD)
# 只有返回?cái)?shù)值的時(shí)候才打印信息,否則出錯(cuò)了
if [ "$NUM" ]; then
printf "%-48s\t%16s\n" $CMD $NUM
else
echo $CMD >&2
echo $CMD >>failed.dat
fi
}
問(wèn)題思考
1. 將要輸出的信息放在單引號(hào)、雙引號(hào)以及不放在引號(hào)中有什么區(qū)別?
2. 怎樣輸出彩色文字(如同ls時(shí)的效果)?
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的linux用echo显示欢迎信息,我使用过的Linux命令之echo - 显示文本、打印信息的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 标准输入输出 stdio 流缓冲 buf
- 下一篇: linux-ftools查看Linux