您好,登錄后才能下訂單哦!
如何學(xué)習(xí)Shell的參數(shù)傳遞,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
shell腳本運行可以通過參數(shù)傳遞到腳本 來作為自動輸入?yún)?shù)
#!/bin/bash #定義數(shù)組 echo "Shell 傳遞測試"; echo "這是水果:$0"; echo "這是水果:$1"; echo "這是水果:$2";
運行腳本時需要導(dǎo)入傳遞的值
chmod +x test.sh ./test.sh Banana apple orange #顯示結(jié)果 這是水果:Banana; 這是水果:apple; 這是水果:orange;
特殊字符:
$# | 傳遞到腳本的參數(shù)個數(shù) |
$* | 顯示所有向腳本傳遞的參數(shù)。 |
$$ | 腳本運行的當(dāng)前進程ID號 |
$! | 后臺運行的最后一個進程的ID號 |
$@ | 與$*相同,但是使用時加引號,并在引號中返回每個參數(shù)。 如"$@"只有在雙引號中體現(xiàn)出來、以"$1" "$2" … "$n" 的形式輸出所有參數(shù)。 |
$- | 顯示Shell使用的當(dāng)前選項,與 set命令 功能相同。 |
$? | 顯示最后命令的退出狀態(tài)。0表示沒有錯誤,其他任何值表明有錯誤。 |
#判斷上一步操作是否成功 即是否 $?=0 #!/bin/bash if [ $? -eq 0 ];then echo -e "\033[36mThis **** successful!!\033[0m" else echo -e "\033[32mthis **** failed !!!\033[0m" fi
#判斷是否有參數(shù)輸入 if [ -n "$1" ]; then echo "包含第一個參數(shù)" else echo "沒有包含第一參數(shù)"fi
#判斷目錄是否存在 #!/bin/bash BAK_DIR=/usr/local/tomcat/webapps_bak/`date +%Y%m%d` if [ ! -d $BAK_DIR ];then mkdir -p $BAK_DIR fi
#判斷文件是否存在 #!/bin/bash BAK_DIR=/usr/local/tomcat/webapps_bak/`date +%Y%m%d` if [ ! -e $BAK_DIR ];then touch $BAK_DIR fi
#判斷字符串是否相同,注意空格使用 #!/bin/bash BAK_DIR="str" if [[ ${BAK_DIR} = ${BAK_DIR} ]];then echo "${BAK_DIR} 相同" else echo "${BAK_DIR} 不相同" fi
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。