指令的執行時從上到下,從左到右
指令、選項與引數之間的多個空白都會被忽略掉
空白行也會被忽略掉,並且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結構條件句...