2021-05-12 14:32:11
RHEL7 學習筆記(38 ) - Shell
RHEL7 學習筆記(38 ) - Shell
Shell指令碼的參考書從基礎到高階可以找幾百本出來,豆子這裡過為了整個學習筆記的完整性,還是厚顏把最最基本的語法回顧一遍。最基本包括變數,比較,運算子,條件語句,迴圈語句。
變數分為本地變數,環境變數,位置變數
首先看看本地變數, 變數名=值的方式賦值,不過只在當前的shell裡面有效
比如,子shell裡面就無法識別了
可以通過export的方式設定環境變數,這樣子shell裡面也可以識別
不過上面的設定只是臨時生效,重新啟動就沒了
可以通過修改組態檔的方式永久生效。登入家目錄的時候,會自動載入家目錄下的這些隱藏檔案。
上面只是對當前使用者生效,如果對所有使用者都生效,可以修改/etc/bashrc 檔案。
這些檔案的載入的順序如下所示。
Shell裡面已經有預先設定的環境變數了,比如
可以根據需要修改,比如我需要提示符前面顯示整個路徑,可以修改$PS1 變數
此外,還有針對位置的變數,比如$1,$2分別代表第一個位置和第二個位置的變數。如果是10要括弧起來
我還可以用 $# 統計所有的變數數目,$* 輸出所有變數
例如:輸出第一個位置值(程式本身名字) 第二個位置的值(其實是第一個引數)
輸出的時候注意區別,單引號,雙引號和反引號
還有一些預定義的變數有特殊意義, $?表示上一次的命令的返回值,0表示成功,其他數位表示失敗
比較主要可以對數值,字元比較;注意這個和其他很多語言是反的,-eq ,-gt之類的比較的是數位;==,
除此還可以判斷檔案,目錄是否存在。
對於數值運算,可以通過declare,(()),let和bc來操作。但是只有bc可以進行浮點運算,其他都是整數運算。
條件判斷語句一般有兩種 if ..else 或者 case 的形式。
比如判斷一個使用者名稱是否存在
根據case 判斷
迴圈比較常用 while 和 for
比如從1加到10
可以通過read讀取檔案或者螢幕輸入
比如 輸出 passwd的內容
類似的,讀取test.txt的內容,建立使用者
如果想中斷迴圈,可以用break;
for 迴圈也很簡單,比如輸出一個乘法表
本文永久更新連結地址:http://www.linuxidc.com/Linux/2015-02/114004.htm
相關文章