echo?
? ? ? ? Display a line of text(顯示一行文本)
? ? ? ? Display a line of text(顯示一行文本)
? ? ? ? 這個命令的作用相當簡單明了。傳遞到 echo 命令的任一個參數都會在(屏幕上)顯示出來。
小插曲:
? ? ? ? 每當你輸入一個命令,然后按下 enter 鍵后,bash 會在執行你的命令之前對輸入 的字符進行一個預處理。例如一個簡單的字符”*”, 對 shell 來說有著多么豐富的涵義。這背后的的過程叫做(字符)展開。通過展開, 你輸入的字符,在 shell 對它起作用之前,會展開成為別的字符。
? ? ? ?為了說明這一點 ,以下是 echo 命令案例:
案例 | 意義 |
| 傳遞到 echo 命令的參數在屏幕上顯示出來 |
| (字符)展開,顯示當前目錄下所有(非隱藏)目錄及文件名; 這個”*“字符意味著匹配文件名中的任意字符 |
echo D* | 顯示當前目錄下以D打頭的所有(非隱藏)目錄及文件名; |
| 顯示當前目錄下以大寫字母打頭的所有(非隱藏)目錄及文件名; |
| (路徑)展開,顯示拼配到的路徑名 |
| 算術表達式展開,顯示算術表達式(2+2)的結果,算術表達式展開格式:$((expression)) |
| 花括號展開,顯示:Number_1 Number_2 Number_3 Number_4 Number_5 |
| 花括號展開嵌套使用,顯示:aA1b aA2b aB3b aB4b |
| 參數展開,顯示”USER”的變量的內容。要查看有效的變量列表可以使用printenv |
| 命令替換,允許我們把一個命令的輸出作為一個展開模式來使用. 顯示ls命令的執行結果 |
mkdir?$(echo?dir_{1..3}) | 批量創建 dir_1、dir_2、dir_3目錄 |
| 轉義字符來顯示特殊字符,$轉義字符\$? |
each 單引號和雙引號的使用區別
雙引號:放在雙引號中的文本,(shell 使用的特殊字符)除了 $,\ (反斜杠),和 `(倒引號)之外,均被當作普通字符來看待(失去它們的特殊含義)。
? ? ? ? 注意:雙引號中,參數展開,算術表達式展開,和命令替換仍然有效。
單引號:禁止所有的展開,放在單引號內的所有文本均被當作普通字符來看待(失去它們的特殊含義)。