乙個指令碼的組成:指令碼宣告、注釋資訊(可省略)、linux命令。下面是乙個較簡單的shell指令碼。我們使用 vim example.sh 進入編寫。
#!/bin/bash
#example
pwdls -al
使用 bash example.sh 命令執行結果如下:
echo "當前指令碼名稱為$0"
echo "總共有$#個引數,分別是$*"
echo "第乙個引數為$1,第五個引數為$5"
編寫完上面的指令碼後,我們傳入引數並執行指令碼
sh example.sh one two three four five six
one~six是我們傳入的引數。$0對應指令碼程式的名稱;$#對應引數的個數;$*對應所有引數值;$?對應上一次執行命令的返回值;$1~$6對應傳入的各個引數one~six。上述指令碼的執行結果如下。
條件測試語句的執行格式:[ 條件表示式 ] 。注意:兩邊均有乙個空格。
條件測試語句可以分為4種。檔案測試語句、邏輯測試語句、整數值測試語句、字串符比較語句。
檔案測試語句
#判斷檔案/etc/fstab是否存在
echo $?
顯示上一條執行命令的返回值。
若返回值為0,代表存在。若返回值不為0,則代表不存在。
邏輯測試語句
與 "&&" ; 或 "||" ; 非 "!"。類似於c++中的與、或、非。
&&:當前面的命令執行成功後才會執行後面的命令。
||:當前面的命令執行失敗後才會執行後面的命令。
!:將條件測試語句的判斷結果取反。
[ -e /dev/cdrom ] && echo "exist"
#當/dev/cdrom存在時才會輸出exist
[ -e /dev/cdrom || echo "do not exist"
#當/dev/cdrom不存在時才會輸出do not exist
這三個符號我們可以多次巢狀使用。例如
[ ! $user =root ] && echo "user" || echo "root"
#若使用者為root則輸出root,否則輸出user。
整數值比較語句
字串符比較語句
lang為語系環境變數。一般為 「en_us.utf-8」。
[ $lang != "en.us" ] && echo "not en.us"
顯然,輸出結果肯定為 not en.us。
參考資料: 《linux就該這麼學》人民郵電出版社 劉遄 著
Shell指令碼(三) Shell指令碼入門
1 指令碼格式 指令碼以 bin bash開頭 指定解析器 2 第乙個shell指令碼 helloworld 1 需求 建立乙個shell指令碼,輸出helloworld 2 案例實操 atguigu hadoop101 datas touch helloworld.sh atguigu hadoo...
shell 指令碼入門
shell 是乙個用 c 語言編寫的程式,它是使用者使用 linux 的橋梁。shell 既是一種命令語言,又是一種程式語言。shell 是指一種應用程式,這個應用程式提供了乙個介面,使用者通過這個介面訪問作業系統核心的服務。ken thompson 的 sh 是第一種 unix shell,win...
shell指令碼入門
str wxz echo 輸出 3 提取子字串 以下例項從字串第 2 個字元開始擷取 4 個字元 string the shell script is great echo 輸出 he s查詢子字串 查詢字元 i 或 s 的位置 string runoob is a great company ec...