红联Linux门户
Linux帮助

shell关于取得参数的问题

发布时间:2016-10-08 10:48:47来源:linux网站作者:李方君
遇到一个问题,比如我只需要取的脚本传入的参数的从第二个开始的到后面的参数,怎么取?
 
$@是取的所有的参数,现在需要排除第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  
 
像这个循环打印的结果就是直接从第二个开始打印出来。
shell关于取得参数的问题
 
这样从第二个开始打印,不是我们想要的结果。
 
考虑用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循环的最后一次更新的内容就是我们想要的数据。
shell关于取得参数的问题
 
完成,这样就得到我们要的变量。
 
本文永久更新地址:http://www.linuxdiyf.com/linux/24841.html