shell程式設計筆記(二)

2021-08-19 15:46:03 字數 1326 閱讀 5055

終於要開始正式寫shell指令碼了

建立陣列變數的方式,直接給陣列的索引賦值:

array[index]=value
注意:index是有取值範圍的[0, 1023]

如果乙個標量的名字和陣列名重名,那麼該標量對應的值就會變成該陣列0索引對應的值

另一種初始化陣列的方式,可以給多個元素一次性賦值

訪問方式也在上面給出了

形式是這樣的:$

使用這樣的方式可以訪問陣列中所有的元素echo $

如果我們定義了乙個這樣的陣列元素:fruit[3]="passion fruit"

那麼當我們使用$的方式訪問陣列時,shell會把陣列解釋為5項,這時我們需要使用$來讓shell知道我們想要輸出的是4項

其實也看不出來什麼太大的差別

直接使用readonly命令即可將變數設定為唯讀變數,相當於高階語言中的const關鍵字,只能在初始化的時候被修改一次

使用unset命令刪除變數,readonly變數無法被刪除

首先來說明一下環境變數的概念:

當shell執行乙個程式時,它傳遞給這個程式的一組變數稱為環境。環境通常是被shell定義的所有變數中的乙個小子集。在環境中的每乙個變數都稱為環境變數

在區域性變數和環境變數之外,還有一種變數叫做shell變數

有些shell變數是環境變數,有些是區域性變數

輸出環境變數使用命令export name,意思就是通過export命令將區域性變數放到環境中

shell程式設計筆記(二)

這兩個屬於附加許可權位,這兩個附加許可權通過設定使用者id位 suid 和設定組id位 sgid 的機制來賦給程式 當你執行了乙個設定了suid位的程式時,你就繼承了該程式的屬主的許可權,當你執行了乙個設定了sgid位的程式,你就繼承了該程式所屬使用者組的許可權 可以看到passwd程式的suid位...

學習shell程式設計筆記 二

變數 含義 0 當前指令碼的檔名 n傳遞給指令碼或函式的引數。n 是乙個數字,表示第幾個引數。例如,第乙個引數是 1,第二個引數是 2。傳遞給指令碼或函式的引數個數。傳遞給指令碼或函式的所有引數。傳遞給指令碼或函式的所有引數。被雙引號 包含時,與 稍有不同,下面將會講到。上個命令的退出狀態,或函式的...

shell程式設計《二》

一 if語句 if expressino then code block elif expression then code block else code block fi fi 比較整 數a 和b是否 相等 if a b 也 可 用 eq 判斷整 數a是否 大於整數 b if a gt b 比較...