位置變量
成都創(chuàng)新互聯(lián)長期為上1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為華容企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè),華容網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。$0 獲取當前執(zhí)行的shell腳本的文件名,如果執(zhí)行腳本帶路徑那么就包括腳本路徑
[root@XCN shell]# sh n.sh n.sh [root@XCN ~]# sh /shell/n.sh /shell/n.sh [root@XCN shell]# sh `pwd`/n.sh /shell/n.sh
$n 獲取當前執(zhí)行的shell腳本的第n個參數(shù)值,n=1..9,當n為0時表示腳本的文件名,如果n大于0,大括號括起來${10}
腳本內(nèi)容: #!/bin/bash echo $1 [root@XCN shell]# sh p.sh xcn #1個參數(shù) xcn [root@XCN shell]# sh p.sh xcn cainiao #2個參數(shù)輸出的是第一個參數(shù) xcn
$* 獲取當前shell的所有參數(shù),將所有的命令行參數(shù)視為單個字符串,相當于"$1$2$3".....注意與$#的區(qū)域
$# 獲取當前執(zhí)行的shell腳本后面接的參數(shù)的總個數(shù)
[root@XCN shell]# cat p.sh echo $1 echo $# [root@XCN shell]# sh p.sh {a..z} a 26 企業(yè)應(yīng)用:(控制用戶參數(shù)輸入的個數(shù))當輸入?yún)?shù)不等于2成立輸出“muse two”,側(cè)不成立會輸出"buchengli" [root@XCN shell]# cat 1p.sh #!/bin/bash [ $# -ne 2 ] && { echo "muse two" exit 1 #值1是退出后$? 的值 } echo "buchengli" [root@XCN shell]# sh 1p.sh bai muse two [root@XCN shell]# sh 1p.sh bai shu buchengli [root@XCN shell]#
$@ 這個程序的所有參數(shù)"$1" "$2" "$3" "...",這是將參數(shù)傳遞給其他程序的最佳方式,因為他會保留內(nèi)嵌在每個參數(shù)里的任何空白。
$*和$@的區(qū)別例子
$* 將所有的命令行所有參數(shù)視為單個字符串,等同于"$1$2$3","$*"
$@ 將命令行每個參數(shù)視為單獨的字符串,等同于"$1" "$2" "$3".這是將參數(shù)傳遞給其他程序的最近方式,因為他會保留所有內(nèi)嵌在每個參數(shù)里的任何空白。
注意:上述區(qū)別僅在于加雙引號的時候,即"$*"與"$@"
shift 移動位置變量
2.進程狀態(tài)變量
$$ 獲取當前shell的進程號
$! 執(zhí)行上一個指令的PID
$? 獲取執(zhí)行上一個指令的返回值(0為成功,非零為失敗)#這個變量很常用
$_ 在此之前執(zhí)行的命令或腳本的最后一個參數(shù)
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。