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