執(zhí)行 Shell 腳本時彼宠,可以向腳本傳遞參數(shù)。
腳本內(nèi)獲取參數(shù)的格式為:$n
- $0 為執(zhí)行的文件名
- $1 為執(zhí)行腳本的第一個參數(shù)鸳惯,$2 為執(zhí)行腳本的第二個參數(shù)鸦做,以此類推……
- $#:參數(shù)總個數(shù)
- $@ 與 $*都可以得到所有參數(shù),但是雙引號情況下有區(qū)別
#!/bin/bash
echo "Shell 傳遞參數(shù)實例贝或!";
echo "執(zhí)行的文件名:$0";
echo "第一個參數(shù)為:$1";
echo "第二個參數(shù)為:$2";
echo "第三個參數(shù)為:$3";
echo "參數(shù)個數(shù)為:$#";
echo "傳遞的參數(shù)作為一個字符串顯示:$*";
echo ""
# $* 與 $@ 區(qū)別只有在雙引號中體現(xiàn)出來
# 假設(shè)在腳本運行時寫了三個參數(shù) 1吼过、2、3
# "*" 等價于 "1 2 3"(傳遞了一個參數(shù))
# "@" 等價于 "1" "2" "3"(傳遞了三個參數(shù))
echo "* 與 @ 區(qū)別"
echo "使用雙引號的情況"
for i in "$*"; do
echo $i
done
echo ""
for i in "$@"; do
echo $i
done
echo ""
echo "不使用雙引號的情況"
for i in $*; do
echo $i
done
echo ""
for i in $@; do
echo $i
done
echo ""
輸出
ShuaideMacBook-Pro:Desktop shuai$ ./a.sh 1 2 3 4
Shell 傳遞參數(shù)實例咪奖!
執(zhí)行的文件名:./a.sh
第一個參數(shù)為:1
第二個參數(shù)為:2
第三個參數(shù)為:3
參數(shù)個數(shù)為:4
傳遞的參數(shù)作為一個字符串顯示:1 2 3 4
* 與 @ 區(qū)別
使用雙引號的情況
1 2 3 4
1
2
3
4
不使用雙引號的情況
1
2
3
4
1
2
3
4
ShuaideMacBook-Pro:Desktop shuai$