shell指令碼入門

2022-09-20 08:03:12 字數 1878 閱讀 3441

乙個指令碼的組成:指令碼宣告、注釋資訊(可省略)、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...