Shell scripts簡單入門

2021-07-11 13:09:43 字數 2212 閱讀 1211

指令的執行時從上到下,從左到右

指令、選項與引數之間的多個空白都會被忽略掉

空白行也會被忽略掉,並且tab同樣視為空格

如果讀取到乙個enter符號,就會嘗試改行命令。可以用』\』來轉義乙個enter。

#後面是批註,不被執行

直接當做命令下達:該檔案必須有rx許可權,然後必須可以找到該命令,即要麼通過絕對路徑或相對路徑,或者利用環境變數path

以bash程式來執行:通過bash shell.sh或許sh shell.sh來執行(shell.sh是我們寫好的指令碼)。

這時相當於乙個子程式中執行,所以在shell.sh中自定義的變數不會保留到父程式當中。除非在指令碼中加入export,把自定義變數加入到環境變數

3.用source命令來執行:這時就是在父程式中執行指令碼

1.cat <> file

[j] <> file:表示讀寫方式開啟file,若file不存在就建立它。然後建立乙個fd為j的檔案描述符,這個檔案描述符指向file。若j不存在就預設為0。

2.digit1>&digit2

這個相當於dup2(digit2, digit1)

例子:

test -e /de  /* 判斷/de是否存在 */

例子:

[ -z "$home" ] /*  注意空格! */
注意:內的每個元件都要用空格隔開

括號中的變數,最好都以雙引號括起來

中的常數,最好都以單或者雙引號括起來

預設引數 $0, $1…

例子:比如我乙個指令碼shell.sh,那麼我輸入./shell.sh 1 2 3

傳給我這個指令碼的預設引數是

./shell.sh         123

$0$1

$2$3

即我可以在我的指令碼中$0來表示./shell.sh,$1來表示1。

在指令碼中使用

shift n 

/* 表示上面的指令碼引數要左移n個單位,例如

shift

1,那麼現在的1要用$0來表示

*/

1.單層,簡單條件判斷

if [條件];then

//條件成立時的語句

fi

2.多重判斷

if [條件1];then

//條件1成立時的語句

elif [條件2];then

//條件2成立時的語句

else

//條件1與條件2都不成立時的語句

fi

宣告與定義乙個function:

function

fname

()

function也可以有引數

function

print

()print12

3/* 這裡類似於傳給我們shell的引數一樣 1是第二個引數 */

這裡var可以是前面沒有宣告的

shell指令碼中的這個for迴圈是知道迴圈次數的,即con的個數是固定的,所以是一種固定迴圈

Shell Scripts 簡單實戰

shell有什麼用 1.自動化管理的重要依據 2.追蹤與管理系統的重要工作 3.簡單入侵檢測功能 4.連續指令單一化 5.簡單的資料處理 6.跨平台支援與學習歷程較短 簡單的scripts編寫步驟 1.第一行 bin bash 通知系統之歌scripts使用的shell型別 2.程式內容的說明 說明...

Shell Scripts 簡單實戰 (二

1.利用test指令測試功能 test filename e 該檔案是否存在 f 該檔案是否存在且是file d 該檔名存在且是否為目錄 b 是否存在且是block device c 是否存在且是character device s 是否存在且是socket p 是否存在且是pipe test rw...

Shell Scripts 指令碼檢查

shell script指令碼檢查 sh nvx scripts.sh 選項與引數 n 不執行script,僅查詢語法的問題 v 在執行script前,先將scripts的內容輸出到螢幕上 x 將使用到的script內容顯示到螢幕上,這是很有用的引數 shell 裡面條件控制語句 case結構條件句...