shell指令碼學習 初學,定義變數

2021-10-01 22:26:48 字數 982 閱讀 1204

兩年前有簡單的接觸過shell指令碼,不過還來不及深入了解就換工作了。

從現在開始重新學習一下。

linux 的 shell 種類眾多,常見的有:

在一般情況下,人們並不區分 bourne shell 和 bourne again shell,所以,像 #!/bin/sh,它同樣也可以改為 #!/bin/bash。

#! 告訴系統其後路徑所指定的程式即是解釋此指令碼檔案的 shell 程式。

shell指令碼寫好後使用chmod 777 ***.sh賦予許可權,然後./***,sh執行

定義shell的變數前不需要加符號,但是使用的時候需要加$符號。

變數名的命名須遵循如下規則:

除了顯式地直接賦值,還可以用語句給變數賦值,如:

for file in `ls /etc`

或for file in $(ls /etc)

以上語句將 /etc 下目錄的檔名迴圈出來。

使用 readonly 命令可以將變數定義為唯讀變數,唯讀變數的值不能被改變。

readonly a

a="banana"

執行的話會報錯:a: readonly variable

刪除變數

使用 unset 命令可以刪除變數。語法:

unset variable_name
變數被刪除後不能再次使用。unset 命令不能刪除唯讀變數。

執行shell時,會同時存在三種變數:

區域性變數 區域性變數在指令碼或命令中定義,僅在當前shell例項中有效,其他shell啟動的程式不能訪問區域性變數。

環境變數 所有的程式,包括shell啟動的程式,都能訪問環境變數,有些程式需要環境變數來保證其正常執行。必要的時候shell指令碼也可以定義環境變數。

shell變數 shell變數是由shell程式設定的特殊變數。shell變數中有一部分是環境變數,有一部分是區域性變數,這些變數保證了shell的正常執行

shell指令碼 預定義變數

有些變數是一開始執行script指令碼時就會設定,且不能被修改,我們叫他們為預定義變數。這些變數當一執行程式時就有了,以下是一些預定義變數 表示所有位置引數的內容,即以乙個字串顯示所有向指令碼傳遞的引數 以 1 2 n 的形式輸出所有引數 表示命令行中位置引數的個數,傳遞到指令碼的引數個數 與 相同...

Shell指令碼定義變數和變數的引用

variablename value 注意 變數名和等號之間不能有空格,這和程式語言都不一樣。同時,變數名的命名須遵循如下規則 已定義的變數,可以被重新定義。variablename good 注意 第二次賦值的時候不能寫 variablename good 使用變數的時候才加美元符 格式 vari...

Shell 指令碼初學

其實這個是因為伺服器卡不夠用,為了充分占用一塊卡的資源,需要寫個shell指令碼幫忙執行網路 shell是一種指令碼語言 區別於編譯語言 在unix上基本都通用。在我看來,這個指令碼主要並不是用來計算,而是用來管理打雜的。第乙個程式,還是輸出hello world吧。首先建立乙個指令碼檔案 vim ...