Shell指令碼的echo命令用法
阿新 • • 發佈:2019-02-10
在使用shell指令碼之前,我們是否應該先通俗的瞭解一下shell是什麼呢?shell可以理解為命令直譯器。我們知道,如果我們想要計算機去做一件事兒,就得告訴它。但是計算機核心不可能直接識別我們的命令,所以shell就是介於核心和使用者互動之間的中間層,接收使用者輸入的命令,解釋給核心執行。一般來說就像windows作業系統,你點選滑鼠可能就會完成一個操作,實際這些圖形下面就是shell了。該系統下的命令視窗的dos語言就是一種shell。常見得比如Linux和Unix系統裡面的bash,ksh,csh等。所謂的shell指令碼就是將很多的shell命令語句集合在一個檔案中,來完成一些較複雜的錯做。
在Shell指令碼程式設計中,echo命令是用來輸出一些字串,用作提示。下面就簡單介紹下它的基本用法,以後有補充的再擴充。下面的圖片示例中,"#"是註釋符
基本的語法為: echo [-en] String # -e 轉義反斜扛字元 -n 禁止換行
常用的幾種輸出格式:
1.顯示普通字串
例如:
echo "It is a test" 結果是: It is a test
這個字串可以加雙引號也可以加單引號也可以不加,區別是:當使用單引號時,裡面是什麼就輸出什麼,即使有轉義字元也不識別。當使用雙引號時,可以識別轉義字元。如果不加引號,則將字串中的單個單詞作為字串輸出,各個字串之間用一個空格分割。
例如:
echo "\"It is a test\"" 結果是: "It is a test"
2.顯示至定向檔案
例如:
echo "It is a test" > myfile # >後面跟檔名
3.顯示(不)換行(圖片來源)
例如:
#!/bin/sh echo -e "OK! \c" # -e 開啟轉義 \c 不換行 echo "It is a test"
echo -e "OK!\n" # -e 開啟轉義 \n換行 echo "It it a test"
另外,echo常用的轉義字元如下:
引數 | 說明 |
---|---|
\a | 鬧鈴 |
\b | 退格(即刪除前一個字元) |
\c | 強制換行 |
\e | 退出 |
\f | Formfeed(沒驗證還,不知道神馬意思回頭再改) |
\n | 換行 |
\t | 水平製表符 |
\v | 垂直製表符 |
\\ | 反斜扛 |
\" | 雙引號 |
\nnn | 插入nnn"八進位制"所代表的ASCII字元 |
完整的ASCII碼對照表
Shell指令碼的執行過程(圖片來源)
shell的轉義符
字元 | 說明 |
‘’(單引號) | 又叫硬轉義,其內部所有的shell 元字元、萬用字元都會被關掉。注意,硬轉義中不允許出現’(單引號)。 |
“”(雙引號) | 又叫軟轉義,其內部只允許出現特定的shell 元字元:$用於引數代換 `用於命令代替 |
\(反斜槓) | 又叫轉義,去除其後緊跟的元字元或萬用字元的特殊意義。 |
如圖所示我們可以看到,雙引號經過引數擴充套件,命令列代換和算術代換後進入執行步驟,而單引號轉義字元直接進入執行步驟。兩個在shell檢測過程中跳過了不同數量的步驟。