6.位置參數(shù)變量
位置參數(shù)變量就是bash將傳遞給腳本的參數(shù)由驹,按照位置不同,保存在不同的位置變量中昔园,以便于腳本調(diào)用這些變量蔓榄。
shell中的位置參數(shù)變量及其作用見下圖:
其中闹炉,$n
是最重要的一個位置參數(shù)變量。舉個例子润樱,:
#!/bin/bash
num1=$1
num2=$2
sum=$(($num1 + $num2))
echo $sum
將上述代碼保存在test1.sh中渣触,執(zhí)行結(jié)果如下:
需要注意的是,在執(zhí)行命令時壹若,需要在執(zhí)行的文件后面加上要運算的數(shù)值嗅钻。執(zhí)行程序后,程序會把第一個數(shù)值38賦給num1店展,把第二個值33賦給num2养篓,并計算兩個數(shù)值的和。
$*
和$@
都代表命令行中的所有參數(shù)赂蕴,只不過$*
是把所有參數(shù)看做一個整體柳弄,$@
是把每個參數(shù)區(qū)分對待,而$#
代表命令行中所有參數(shù)的個數(shù)概说。
舉個例子:
#!/bin/bash
for i in $*
do
echo $i
done
for i in $@
do
echo $i
done
for i in $#
do
echo $i
done
將以上代碼保存到test2.sh中碧注,執(zhí)行結(jié)果如下:
$*
循環(huán)只返回一行結(jié)果,說明該循環(huán)只執(zhí)行了一次糖赔,$@
返回6行結(jié)果萍丐,說明循環(huán)執(zhí)行了6次,而$#
返回了后面參數(shù)的個數(shù)放典,循環(huán)執(zhí)行了1次逝变。
7.預(yù)定義變量
系統(tǒng)預(yù)先定義的變量簡稱為預(yù)定義變量,是由系統(tǒng)預(yù)先定義的一組變量奋构,這些變量通常用于保存與系統(tǒng) / 命令等有關(guān)的信息壳影。預(yù)定義變量由系統(tǒng)自動生成 / 維護(hù),用戶無需修改其值弥臼。
常用的預(yù)定義變量:
8.read:接受鍵盤輸入
read [選項] [變量名]
選項:
- -p "提示信息":在等待read輸入時宴咧,輸出提示信息
- -t 秒數(shù):read命令會一直等待用戶輸入,使用此選項可以指定等待時間
- -n 字符數(shù):read命令只接受指定的字符數(shù)醋火,就會執(zhí)行
- -s:隱藏輸入信息的數(shù)據(jù)悠汽,適用于機密信息的輸入
舉個例子:
#!/bin/bash
read -p "please input your name: " name
echo -e "\n" #換行
echo "I know your name is"$name
將以上代碼存入read.sh中,執(zhí)行結(jié)果如下: