Shell 傳遞參數(shù)
我們可以在執(zhí)行 Shell 腳本時,向腳本傳遞參數(shù)技健,腳本內(nèi)獲取參數(shù)的格式為:$n写穴。n 代表一個數(shù)字,1 為執(zhí)行腳本的第一個參數(shù)凫乖,2 為執(zhí)行腳本的第二個參數(shù)确垫,以此類推……
以下實例我們向腳本傳遞三個參數(shù)弓颈,并分別輸出帽芽,其中 $0 為執(zhí)行的文件名:
#!/bin/bash
# author:菜鳥
# url:www.runoob.com(可以直接拿來測試了)
echo "Shell 傳遞參數(shù)實例!";
echo "執(zhí)行的文件名:$0";
echo "第一個參數(shù)為:$1";
echo "第二個參數(shù)為:$2";
echo "第三個參數(shù)為:$3";
結(jié)果
$ chmod +x test.sh
$ ./test.sh 1 2 3
Shell 傳遞參數(shù)實例翔冀!
執(zhí)行的文件名:./test.sh
第一個參數(shù)為:1
第二個參數(shù)為:2
第三個參數(shù)為:3
$# 傳遞到腳本的參數(shù)個數(shù)
$* 以一個單字符串顯示所有向腳本傳遞的參數(shù)导街。
如"$"用「"」括起來的情況、以"$1 $2 … $n"的形式輸出所有參數(shù)纤子。
$$ 腳本運行的當前進程ID號
$! 后臺運行的最后一個進程的ID號
$@ 與$相同搬瑰,但是使用時加引號,并在引號中返回每個參數(shù)控硼。
如"$@"用「"」括起來的情況泽论、以"$1" "$2" … "$n" 的形式輸出所有參數(shù)。
$-
顯示Shell使用的當前選項卡乾,與set命令功能相同翼悴。
$? 顯示最后命令的退出狀態(tài)。0表示沒有錯誤幔妨,其他任何值表明有錯誤鹦赎。
Shell 數(shù)組
Bash Shell 只支持一維數(shù)組(不支持多維數(shù)組)谍椅,初始化時不需要定義數(shù)組大小(與 c 類似)古话。
與大部分編程語言類似雏吭,數(shù)組元素的下標由0開始。
Shell 數(shù)組用括號來表示陪踩,元素用"空格"符號分割開杖们,語法格式如下:
array_name=(value1 ... valuen)
讀取數(shù)組
讀取數(shù)組元素值的一般格式是:
${array_name[index]}
Shell 基本運算符
Shell 和其他編程語言一樣,支持多種運算符肩狂,包括:
- 算數(shù)運算符
- 關(guān)系運算符
- 布爾運算符
- 字符串運算符
- 文件測試運算符
原生bash不支持簡單的數(shù)學(xué)運算胀莹,但是可以通過其他命令來實現(xiàn),例如 awk 和 expr婚温,expr 最常用描焰。
expr 是一款表達式計算工具,使用它能完成表達式的求值操作栅螟。
例如,兩個數(shù)相加(注意使用的是反引號 ` 而不是單引號 '):
val=`expr 2 + 2`
echo "兩數(shù)之和為 : $val"
執(zhí)行腳本力图,輸出結(jié)果如下所示:
兩數(shù)之和為 : 4
兩點注意:
- 表達式和運算符之間要有空格步绸,例如 2+2 是不對的,必須寫成 2 + 2吃媒,這與我們熟悉的大多數(shù)編程語言不一樣赘那。
- 完整的表達式要被
包含募舟,注意這個字符不是常用的單引號拱礁,在 Esc 鍵下邊吴超。