shell 關於取得參數的問題


遇到一個問題 比如我只需要取的腳本傳入的參數的從第二個開始的到後面的參數 怎麼取

$@是取的所有的參數 現在需要排除第1個參數

剛開始想能不能用while循環把所有參數循環取出到新的變量 從第二個開始 這樣就可以了

#!/bin/bash

num1=$1
num2=$2
num3=$3
num4=$4
command=""


for ((i=2;i<=$#;i++))
do
    echo ${!i}
done

#echo $num1$num2$num3$num4
#echo $@


for ((i=2;i<=$#;i++))
do
    echo ${!i}
done

這個循環打印的結果就是直接從第二個開始打印出來



這樣從第二個開始打印 不是我們想要的結果  

考慮用shift指令 


#!/bin/bash

num1=$1
num2=$2
num3=$3
num4=$4
command=""

#echo $num1$num2$num3$num4
#echo $@
i=`expr $# - 2`
echo $#
while [ $# -ne $i ]
do
    command=$(echo $@)
    shift
done
echo "###################################"
echo $command

這樣 定義個全局變量command 循環的最後一次更新的內容就是我們想要的數據




完成 這樣就得到我們要的變量 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章