首頁 > 軟體

linux命令:echo使用解讀

2023-09-16 06:02:03

Shell中的echo命令類似於php中的echo命令,都是用於輸出。Shell中另有一個輸出命令為printf命令,大家可以在Shell printf 命令中查閱學習。

本文中的一系列範例用到的命令我都是在終端直接寫的,輸出也是輸出在終端,這樣方便學習和記錄吧!其實也都可以放到指令碼檔案中執行。

一、語法

echo [-neE]  [arg ...]

(1)含義

  • -n:表示輸出字串不換行
  • -e:表示對於跳脫字元按對應的方式進行處理(若不加-e ,那麼在輸出時跳脫字元會按照普通字元進行處理,並不會達到自己想要達到的目的。)
  • -E:禁用跳脫解釋
跳脫字元含義
b刪除前一個字元
n換行
t水平製表符(tab)
v垂直製表符(tab)
cc後面的字元將不會輸出,輸出完畢後也不會換行
r遊標移動到首行,不換行
f換行,遊標停在原處
e刪除後一個字元
輸出
nnn輸出八進位制nnn代表的ASCII字元
xHH輸出十六進位制數HH代表的ASCII字元
a輸出一個警告的聲音

(2)範例

[root@localhost my_shell]# echo "hello "
hello 
[root@localhost my_shell]# echo -n "hello "
hello [root@localhost my_shell]# echo  "hello b"
hello b
[root@localhost my_shell]# echo -e "hello b"
hello 
[root@localhost my_shell]# echo -en "hello b"
hello[root@localhost my_shell]# echo -e "hellotworld"
hello	world
[root@localhost my_shell]# echo -e "hellonworld"
hello
world
[root@localhost my_shell]# echo -e "hellovworld"
hello
     world
[root@localhost my_shell]# echo -e "hellocworld"
hello[root@localhost my_shell]# echo -e "hellorworld"
world
[root@localhost my_shell]# echo -e "helloaworld"
helloworld
[root@localhost my_shell]# echo -e "hellocworld"
hello[root@localhost my_shell]# echo -e "ehelloworld"
elloworld
[root@localhost my_shell]# echo -e "hello\world"
helloworld
[root@localhost my_shell]# echo -e "x31"
1
[root@localhost my_shell]# echo -e "123"
S

(3)具體用法

上面介紹的主要是一些輸出字串相關的具體用法,下面詳細例舉一些echo命令的其他用法。

1、顯示普通字串

[root@localhost ~]# echo "hello world"
hello world
[root@localhost ~]# echo hello world
hello world

#雙引號可以省略,效果一致。(字串的輸出都是如此,下面一些範例也是可以省略雙引號也能達到相同效果)

2、顯示變數

這裡用到read命令(從標準輸入中讀取一行,並把輸入行的每個欄位的值指定給 shell 變數)

[root@localhost ~]# read name
Michael Zhang
[root@localhost ~]# echo "My name is $name"
My name is Michael Zhang

3、顯示換行

[root@localhost ~]# echo -e "hello nworld"
hello 
world

4、顯示不換行

#!/bin/sh
echo -e "OK! c" # -e 開啟跳脫 c 不換行
echo "hello world"
#結果如下
OK! hello world

5、顯示跳脫字元

[root@localhost ~]# echo ""hello world""
"hello world"

6、重定向

結果輸出到檔案

echo "hello world" > my_file
#將hello world輸出到my_file檔案

7、原樣輸出

用單引號可原樣輸出。

[root@localhost ~]# echo '$name"'
$name"
[root@localhost ~]# echo '$name'
$name

8、顯示命令執行結果

#顯示當前日期
[root@localhost ~]# echo `date`
Sat Jan 2 23:12:39 CST 2021

這裡使用的是反引號`, 而不是單引號’。

實際上輸出一些執行命令的結果就是這樣用反引號。

二、echo的重定向

重定向是Shell中的一個重要內容,可以檢視我的文章Linux中的重定向

echo命令的重定向功能經常被用於清空檔案內容(刪除檔案)時使用,具體在我的另一篇文章中介紹:Linux中清空檔案的方式

(1)echo "content" > filename

將content覆蓋到filename檔案當中去,filename檔案當中之前的內容不復存在了,實際上是修改了原檔案的內容。

(2)echo "content" >> filename

將content追加到filename檔案後,對filename檔案之前的內容不修改,只進行增添,也叫追加重定向。

(3)範例

[root@localhost my_shell]# touch test
[root@localhost my_shell]# cat test 
[root@localhost my_shell]# ll
total 4
-rw-r--r-- 1 root root 175 Nov  6 17:46 del.sh
-rw-r--r-- 1 root root   0 Nov  7 23:33 test
[root@localhost my_shell]# echo "123456" > test
[root@localhost my_shell]# cat test
123456
[root@localhost my_shell]# echo "111111" > test
[root@localhost my_shell]# cat test
111111
[root@localhost my_shell]# echo "123456" >> test
[root@localhost my_shell]# cat test
111111
123456
[root@localhost my_shell]# 

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com