一、變數的使用技巧
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-tw/n/227780.html
微信掃一掃
支付寶掃一掃