遇到一個問題 比如我只需要取的腳本傳入的參數的從第二個開始的到後面的參數 怎麼取
$@是取的所有的參數 現在需要排除第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 循環的最後一次更新的內容就是我們想要的數據
完成 這樣就得到我們要的變量