溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何學(xué)習(xí)Shell的參數(shù)傳遞

發(fā)布時間:2021-11-06 17:21:15 來源:億速云 閱讀:95 作者:柒染 欄目:建站服務(wù)器

如何學(xué)習(xí)Shell的參數(shù)傳遞,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

參數(shù)傳遞

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è)資訊頻道,感謝您對億速云的支持。

向AI問一下細節(jié)

免責(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)容。

AI