溫馨提示×

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

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

使用linux的shift命令移動(dòng)位置參數(shù)

發(fā)布時(shí)間:2020-07-22 10:28:03 來源:億速云 閱讀:262 作者:清晨 欄目:服務(wù)器

這篇文章將為大家詳細(xì)講解有關(guān)使用linux的shift命令移動(dòng)位置參數(shù),小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

shift命令用于對(duì)參數(shù)的移動(dòng)(左移),通常用于在不知道傳入?yún)?shù)個(gè)數(shù)的情況下依次遍歷每個(gè)參數(shù)然后進(jìn)行相應(yīng)處理(常見于Linux中各種程序的啟動(dòng)腳本)。

對(duì)于某個(gè)命令行參數(shù),其參數(shù)個(gè)數(shù)可以不固定,但是可以通過$*或$@進(jìn)行循環(huán)操作。若用戶要求Shell在不知道變量個(gè)數(shù)的情況下,還能逐個(gè)處理參數(shù),也就是在$1之后是$2,$2之后是$3。在未運(yùn)行shift命令之前$1是可用的,當(dāng)使用shift命令之后,原來的$2會(huì)變成$1,并且原有的$1變得不可用,通過$#命令獲得的參數(shù)個(gè)數(shù)也會(huì)少1。

語法格式:shift [參數(shù)]

常用參數(shù):

參考實(shí)例

依次讀取輸入的參數(shù)并打印參數(shù)個(gè)數(shù):

run.sh 內(nèi)容如下:

#!/bin/bash
while [ $# != 0 ];do
echo "第一個(gè)參數(shù)為:$1,參數(shù)個(gè)數(shù)為:$#"
shift
done 
輸入如下命令運(yùn)行:run.sh a b c d e f 
結(jié)果顯示如下:第一個(gè)參數(shù)為:a,參數(shù)個(gè)數(shù)為:6
第一個(gè)參數(shù)為:b,參數(shù)個(gè)數(shù)為:5
第一個(gè)參數(shù)為:c,參數(shù)個(gè)數(shù)為:4
第一個(gè)參數(shù)為:d,參數(shù)個(gè)數(shù)為:3
第一個(gè)參數(shù)為:e,參數(shù)個(gè)數(shù)為:2
第一個(gè)參數(shù)為:f,參數(shù)個(gè)數(shù)為:1 

把參數(shù)進(jìn)行左移3個(gè):

#!/bin/bash
echo -e "./t.sh arg1 arg2 arg3 arg4 arg5 arg6"
str1="${1},${2},${3}"
echo "str1=$str1"
shift 3
str2=$@
echo "str2=$str2"
sh t.sh 1 2 3 4 5 6 7
str1=1,2,3

將參數(shù)從左到右逐個(gè)移動(dòng):

[root@linuxcool ~]# cat shift.sh
#!/bin/bash
while [ $# -ne 0 ]
do
echo "第一個(gè)參數(shù)為: $1 參數(shù)個(gè)數(shù)為: $#"
shift
done
[root@linuxcool ~]# sh shift.sh Lily Lucy Jake Mike
第一個(gè)參數(shù)為: Lily 參數(shù)個(gè)數(shù)為: 4
第一個(gè)參數(shù)為: Lucy 參數(shù)個(gè)數(shù)為: 3
第一個(gè)參數(shù)為: Jake 參數(shù)個(gè)數(shù)為: 2
第一個(gè)參數(shù)為: Mike 參數(shù)個(gè)數(shù)為: 1

關(guān)于使用linux的shift命令移動(dòng)位置參數(shù)就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI