遇到一个问题,比如我只需要取的脚本传入的参数的从第二个开始的到后面的参数,怎么取?
$@是取的所有的参数,现在需要排除第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循环的最后一次更新的内容就是我们想要的数据。
完成,这样就得到我们要的变量。