一、變量的使用技巧
Shell腳本中的變量使用基本上和其他編程語言差不多,都是通過變量名來獲取和設置變量的值。Shell中變量的命名規則和其他編程語言也大同小異。在實際使用中,需要注意以下幾個方面的技巧。
1、變量名的大小寫
#!/bin/bash myvar="Hello World" echo $myvar echo $MYVAR
結果為:
Hello World
因為在Linux中,變量名是區分大小寫的,所以$myvar和$MYVAR是兩個不同的變量。
2、變量名的避免
在Shell腳本中,一些特殊變量是由Shell預定義的。使用這些變量名可能會與Shell的功能產生衝突,因此需要避免使用這些變量名。
#!/bin/bash echo $0 echo $1 echo $2
輸出的結果是當前程序名和兩個傳入的參數。
3、將命令輸出賦值給變量
#!/bin/bash myvar=$(ls /) echo $myvar
通過將命令的輸出賦值給變量,可以方便的通過Shell腳本來處理命令的輸出結果。
二、流程控制語句技巧
Shell腳本支持和其他編程語言類似的流程控制語句。
1、if語句
#!/bin/bash if [ $1 -gt 10 ] then echo "$1 大於10" else echo "$1 不大於10" fi
通過判斷傳入的參數是否大於10,來執行不同的語句。
2、for循環
#!/bin/bash for i in $(seq 1 5) do echo $i done
通過for循環來輸出1到5這幾個數字。
3、while循環
#!/bin/bash i=0 while [ $i -lt 5 ] do echo $i i=$((i+1)) done
while循環可以用於當條件為真時執行一個命令。
三、函數的使用技巧
在Shell腳本中,函數的定義和其他編程語言基本上是差不多的。定義函數的語法如下:
function 函數名() { 函數體 }
定義一個用於輸出Hello World的函數:
#!/bin/bash function hello() { echo "Hello World" } hello
函數需要在調用之前定義,否則Shell會產生一個“未定義函數”的錯誤。
四、命令行參數的處理
在編寫Shell腳本的過程中,可能需要處理命令行參數。Shell腳本中,命令行參數是通過”$1″、”$2″等形式來獲取。
1、傳遞參數
#!/bin/bash echo $1 $2 $3
通過上面的代碼,可以輸出傳入的前三個命令行參數。
2、獲取參數個數
#!/bin/bash echo $#
通過上面的代碼,可以輸出傳入的命令行參數個數。
五、異常處理技巧
在Shell腳本中,可能會出現一些異常情況,需要對這些異常進行處理。
1、退出狀態碼
Shell腳本中,程序退出時可以設置一個狀態碼。通常0為成功,其他值為錯誤。
#!/bin/bash ping -c 1 www.baidu.com > /dev/null if [ $? -eq 0 ] then echo "網絡正常" else echo "網絡故障" exit 1 fi
在上面的例子中,通過ping命令的退出狀態碼來判斷網絡是否正常,如果異常則退出程序。
2、捕捉信號
#!/bin/bash function cleanup() { echo "接收到信號" exit 1 } trap cleanup INT TERM while true do echo "正在運行..." sleep 1 done
上面的代碼通過trap命令來捕捉INT和TERM信號,當收到信號時會執行cleanup函數。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/227780.html