Shell 參數(shù)傳遞的使用方法
我們可以在執(zhí)行 Shell 腳本時,向腳本傳遞參數(shù),腳本內(nèi)獲取參數(shù)的格式為: $n。n 代表一個數(shù)字,1 為執(zhí)行腳本的第一個參數(shù),2 為執(zhí)行腳本的第二個參數(shù),以此類推……
具體實例:
以下實例我們向腳本傳遞三個參數(shù),并分別輸出,其中 $0 為執(zhí)行的文件名(包含文件路徑):
echo "Shell 傳遞參數(shù)實例!"; echo "執(zhí)行的文件名:$0"; echo "第一個參數(shù)為:$1"; echo "第二個參數(shù)為:$2"; echo "第三個參數(shù)為:$3";
為腳本設(shè)置可執(zhí)行權(quán)限,并執(zhí)行腳本,輸出結(jié)果如下所示:
$ chmod +x test.sh $ ./test.sh 1 2 3 Shell 傳遞參數(shù)實例! 執(zhí)行的文件名:./test.sh 第一個參數(shù)為:1 第二個參數(shù)為:2 第三個參數(shù)為:3
另外,還有幾個特殊字符用來處理參數(shù):
echo "Shell 傳遞參數(shù)實例!"; echo "第一個參數(shù)為:$1"; echo "參數(shù)個數(shù)為:$#"; echo "傳遞的參數(shù)作為一個字符串顯示:$*";
執(zhí)行腳本,輸出結(jié)果如下所示:
$ chmod +x test.sh
$ ./test.sh 1 2 3
Shell 傳遞參數(shù)實例!
第一個參數(shù)為:1
參數(shù)個數(shù)為:3
傳遞的參數(shù)作為一個字符串顯示:1 2 3
∗與* 與 ∗與@ 區(qū)別:
- 相同點:都是引用所有參數(shù)。
- 不同點:只有在雙引號中體現(xiàn)出來。假設(shè)在腳本運行時寫了三個參數(shù) 1、2、3,,則 " * " 等價于 "1 2 3"(傳遞了一個參數(shù)),而 "@" 等價于 "1" "2" "3"(傳遞了三個參數(shù))。
echo "-- $* 演示 ---" for i in "$*"; do echo $i done echo "-- $@ 演示 ---" for i in "$@"; do echo $i done
執(zhí)行腳本,輸出結(jié)果如下所示:
$ chmod +x test.sh
$ ./test.sh 1 2 3
-- $* 演示 ---
1 2 3
-- $@ 演示 ---
1
2
3
含有空格的參數(shù),只需要在參數(shù)傳遞的時候加雙引號就可以。
#!/bin/bash echo "---------------with double quote ---------------" echo "$1" echo "$2" echo "$3" my_procedure() { echo "$1" echo "$2" echo "$3" } my_procedure "$@" echo "---------------withtout double quote ---------------" echo $1 echo $2 echo $3 my_procedure() { echo $1 echo $2 echo $3 } my_procedure "$@" echo "---------------withtout double quote by passing arguments---------------" my_procedure $@
輸入:
./test.sh "a b" "c d" "e f"
輸出結(jié)果為:
---------------with double quote ---------------
a b
c d e
f g
a b
c d e
f g
---------------withtout double quote ---------------
a b
c d e
f g
a b
c d e
f g
---------------withtout double quote by passing arguments ---------------
a
b
c
前兩部分無論在函數(shù)內(nèi)外,加不加引號都一樣,但是在函數(shù)傳遞的時候要保證加引號。
到此這篇關(guān)于Shell 參數(shù)傳遞的使用方法的文章就介紹到這了,更多相關(guān)Shell 參數(shù)傳遞內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
linux命令行下使用curl命令查看自己機器的外網(wǎng)ip
Linux命令行下使用curl命令查看自己機器的外網(wǎng)ip,大家參考使用吧2013-12-12Shell腳本中判斷輸入?yún)?shù)個數(shù)的方法
這篇文章主要介紹了Shell腳本中判斷輸入?yún)?shù)個數(shù)的方法,使用內(nèi)置變量$#即可實現(xiàn)判斷輸入了多少個參數(shù),需要的朋友可以參考下2014-10-10Linux實現(xiàn)文件定期本地備份/異地備份/刪除備份的腳本
數(shù)據(jù)備份的意義就在于,當(dāng)受到網(wǎng)絡(luò)攻擊、入侵、電源故障或者操作失誤等事故的發(fā)生后,可以完整、快速、簡捷、可靠地恢復(fù)原有系統(tǒng)。本文為大家準(zhǔn)備了文件定期本地備份/異地備份/刪除備份的腳本,希望對你們有所幫助2022-10-10