echo和Shell特殊變量:Shell $0, $#, $*, $@, $?, $$和命令行參數

  • echo

功能說明:顯示文字。linux

語 法:echo [-ne][字符串]或 echo [--help][--version]shell

補充說明:echo會將輸入的字符串送往標準輸出。輸出的字符串間以空白字符隔開,並在最後加上換行號。vim

參 數:-n 不要在最後自動換行bash

-e 若字符串中出現如下字符,則特別加以處理,而不會將它當成通常文字輸出:函數

\a 發出警告聲;spa

\b 刪除前一個字符;命令行

\c 最後不加上換行符號;翻譯

\f 換行但光標仍舊停留在原來的位置;code

\n 換行且光標移至行首;進程

\r 光標移至行首,但不換行;

\t 插入tab;

\v 與\f相同;

\\ 插入\字符;

\nnn 插入nnn(八進制)所表明的ASCII字符;

--help 顯示幫助

--version 顯示版本信息

每個shell支持的echo指令可能都不太相同。

-n 不輸出最後的\n

-e解釋轉義字符

-E不解釋轉義字符

  • 示例1:輸入一行文本而且在顯示在標準輸出上

xc@xc-HP-Pavilion-dv4-Notebook-PC:~/workspace/filetype$ echo Welcome to Linux world
Welcome to Linux world
  • 示例2:輸出一個聲明的變量值

xc@xc-HP-Pavilion-dv4-Notebook-PC:~/workspace/filetype$ x=13
xc@xc-HP-Pavilion-dv4-Notebook-PC:~/workspace/filetype$ echo the value of x=$x
the value of x=13
  • 示例3:使用"\b"選項

-e‘後帶上'\b'會刪除字符間的全部空格。

注意: Linux中的選項‘-e‘扮演了轉義字符反斜線的翻譯器。

  1. $ echo -e "Tecmint \bis \ba \bcommunity \bof \bLinux \bNerds"
  2.  
  3. TecmintisacommunityofLinuxNerds
  • 示例4:使用"\n"選項

-e‘後面的帶上‘\n’行會在遇到的地方做爲新的一行

  1. $ echo -e "Tecmint \nis \na \ncommunity \nof \nLinux \nNerds"
  2.  
  3. Tecmint
  4. is
  5. a
  6. community
  7. of
  8. Linux
  9. Nerds
  • 5. 使用‘\t‘選項

-e‘後面跟上‘\t’會在空格間加上水平製表符。

  1. $ echo -e "Tecmint \tis \ta \tcommunity \tof \tLinux \tNerds"
  2.  
  3. Tecmintis a community of LinuxNerds

 

  • 6. 也能夠同時使用換行‘\n‘與水平製表符‘\t

  1. $ echo -e "\n\tTecmint \n\tis \n\ta \n\tcommunity \n\tof \n\tLinux \n\tNerds"
  2.  
  3. Tecmint
  4. is
  5. a
  6. community
  7. of
  8. Linux
  9. Nerds
  • 7. 使用‘\v‘選項

-e‘後面跟上‘\v’會加上垂直製表符。

  1. $ echo -e "\vTecmint \vis \va \vcommunity \vof \vLinux \vNerds"
  2.  
  3. Tecmint
  4. is
  5. a
  6. community
  7. of
  8. Linux
  9. Nerds
  • 8. 也能夠同時使用換行‘\n‘與垂直製表符‘\v

  1. $ echo -e "\n\vTecmint \n\vis \n\va \n\vcommunity \n\vof \n\vLinux \n\vNerds"
  2.  
  3.  
  4. Tecmint
  5.  
  6. is
  7.  
  8. a
  9.  
  10. community
  11.  
  12. of
  13.  
  14. Linux
  15.  
  16. Nerds
  • 9. 使用‘\r‘選項

-e‘後面跟上‘\r’來指定輸出中的回車符。(LCTT 譯註:會覆寫行開頭的字符)

  1. $ echo -e "Tecmint \ris a community of Linux Nerds"
  2.  
  3. is a community of LinuxNerds
  • 10. 使用‘\c‘選項

-e‘後面跟上‘\c’會抑制輸出後面的字符而且最後不會換新行。

  1. $ echo -e "Tecmint is a community \cof Linux Nerds"
  2.  
  3. Tecmintis a community @tecmint:~$
  • 11.-n‘會在echo完後不會輸出新行

  1. $ echo -n "Tecmint is a community of Linux Nerds"
  2. Tecmintis a community of LinuxNerds@tecmint:~/Documents$
  • 12. 使用‘\a‘選項

-e‘後面跟上‘\a’選項會聽到聲音警告。

  1. $ echo -e "Tecmint is a community of \aLinux Nerds"
  2. Tecmintis a community of LinuxNerds
  • 13. 使用echo命令打印全部的文件和文件夾(ls命令的替代)

  1. $ echo *
  2.  
  3. 103.odt103.pdf104.odt104.pdf105.odt105.pdf106.odt106.pdf107.odt107.pdf108a.odt 108.odt108.pdf109.odt109.pdf110b.odt 110.odt110.pdf111.odt111.pdf112.odt112.pdf113.odt linux-headers-3.16.0-customkernel_1_amd64.deb linux-image-3.16.0-customkernel_1_amd64.deb network.jpeg
  • 14. 打印製定的文件類型

好比,讓咱們假設你想要打印全部的‘.jpeg‘文件,使用下面的命令。

  1. $ echo *.jpeg
  2.  
  3. network.jpeg
  • 15. echo能夠使用重定向符來輸出到一個文件而不是標準輸出

  1. $ echo "Test Page"> testpage
  2.  
  3. ## Check Content
  4. avi@tecmint:~$ cat testpage
  5. TestPage

echo 選項列表

選項 描述
-n 不輸出末尾的換行符。
-e 啓用反斜線轉義。
\b 退格
\\ 反斜線
\n 新行
\r 回車
\t 水平製表符
\v 垂直製表符
  • echo+shell中的特殊變量

變量名只能包含數字、字母和下劃線,由於某些包含其餘字符的變量有特殊含義,這樣的變量被稱爲特殊變量。

例如,$ 表示當前Shell進程的ID,即pid,看下面的代碼:

xc@xc-HP-Pavilion-dv4-Notebook-PC:~/workspace/filetype$ echo $$
15415
特殊變量列表
變量 含義
$0 當前腳本的文件名
$n 傳遞給腳本或函數的參數。n 是一個數字,表示第幾個參數。例如,第一個參數是$1,第二個參數是$2。
$# 傳遞給腳本或函數的參數個數。
$* 傳遞給腳本或函數的全部參數。
$@ 傳遞給腳本或函數的全部參數。被雙引號(" ")包含時,與 $* 稍有不一樣,下面將會講到。
$? 上個命令的退出狀態,或函數的返回值。
$$ 當前Shell進程ID。對於 Shell 腳本,就是這些腳本所在的進程ID。

命令行參數

運行腳本時傳遞給腳本的參數稱爲命令行參數。命令行參數用 $n 表示,例如,$1 表示第一個參數,$2 表示第二個參數,依次類推。

請看下面的代碼:

創建一個test.sh文件,寫入如下內容:

1     #!/bin/bash
  2     echo "File Name: $0"
  3     echo "First Parameter : $1"
  4     echo "First Parameter : $2"
  5     echo "Quoted Values: $@"
  6     echo "Quoted Values: $*"
  7     echo "Total Number of Parameters : $#"

而後chmod +x test.sh改變文件的權限,運行結果:

xc@xc-HP-Pavilion-dv4-Notebook-PC:~/workspace/filetype$ vim test.sh 
xc@xc-HP-Pavilion-dv4-Notebook-PC:~/workspace/filetype$ ./test.sh XC 666
File Name: ./test.sh
First Parameter : XC
First Parameter : 666
Quoted Values: XC 666
Quoted Values: XC 666
Total Number of Parameters : 2
相關文章
相關標籤/搜索