首頁 > 軟體

RHEL7 學習筆記(38 ) - Shell

2020-06-16 18:07:10

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


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