Shell程式設計基礎入門
阿新 • • 發佈:2018-11-26
1.Shell中的特殊變數
$?表示上一個命令退出的狀態 成功返回0 失敗返回的就是不一定了 本質就是命令的返回值
$$表示當前程序的程序編號
$0表示當前指令碼的名稱
$n表示位置變數(n代表數字,n>=1)
$#表示變數的個數,常用於迴圈
$*和[email protected]都表示引數列表
區別
$*當別雙引號包含時,"$*"會將所有的引數作為一個整體,以"$1 $2 $3 ... $n"的形式輸出所有的引數
"[email protected]"會將各個引數分開,以"$1""$2"..."$n"的形式輸出所有的引數
2.for迴圈
第一種 for p $* do echo $p done 第二種 for((i=0;i<=5;i++)) do echo "hello" done
3.while迴圈
第一種
while expression(布林表示式)
do
...
done
第二種
i=1
while((i<=3))
do
echo $i
let i++
done
4.case語句
格式
case $1 in
start)
echo "starting"
;;(一定要寫)
stop)
echo "stoping"
;;
*)
echo "都不是"
esac
5.運算子
格式:expr m + n 或$((m+n))注意expr運算子之間要有空格 例如計算(2+3) x 4的值 1.分步計算 S=`expr 2 + 3` expr $S \* 4 2.一步完成 expr `expr\`expr 2 + 3\`\*4 或者$(((2+3)*4))
6.read命令(從終端獲取輸入引數)
read -p "將要顯示得提示資訊" -n(字元個數) -t(等待時間)
例如:
read -p "請輸入姓名:" c(這個是用來儲存這個輸入得資訊得)
7.if判斷
語法 if condition then statements [elif condition then statements ...] [else statements] fi 例如 if [ $NAME=root ] then echo "hello ${NAME},welcome!" elif [ $NAME=CentOS1 ] then echo "hello ${NAME},welcome!" else echo "hello" fi
8.判斷語句
[ condition ] && echo ok || echo notok
滿足執行ok 不滿足執行 notok
9.常用判斷條件
常用比較條件
= 字串比較
-lt 小於
-le 大於等於
-eq 等於
-gt 大於
-ge 大於等於
-ne 不等於
對檔案得判斷
-r 有讀得許可權
-w 有寫得許可權
-x 有執行得條件
-f 檔案存在並且是一個常規檔案
-s 檔案存在且不為空
-d 檔案存在並且是一個目錄
-b 檔案存在並且是一塊裝置
-L 檔案存在並且是一個連結
10.Shell自定義函式
語法
function funname[()]
{
...;
[ return int; ]
}
11.shell程式得除錯
sh -vx xxx.sh