shell脚本传参时的注意点,shift命令的使用

大多数应用都能接受不同格式的参数.假如-p,-v是可选项,-k,N是另一个可以接受数字的选项,同时该命令还要求使用一个文件名作为参数.那么,它有如下几种执行方式:

  • $ command -p -v -k 1 file
  • $ command -pv -k 1 file
  • $ command -vpk 1 file
  • $ command file -pvk 1

以上几种方式效果都是一样的
在脚本中,命令行参数可以依据其在命令行中的位置来访问.第一个参数是$1,第二个参数是$2,以此类推
所以显示前3个命令行参数可以这样
echo $1 $2 $3
更为常见的处理方式其实是迭代所有的命令行参数.shift命令可以将参数依次向左移动一个位置,让脚本能够使用$1来访问到每一个参数.
下面的代码显示出了所有的命令行参数

[root@localhost ~]# cat showArgs.sh
for i in `seq 1 $#`
do
	echo $i is $1
	shift
done
[root@localhost ~]# ./showArgs.sh  a  b  c
1 is a
2 is b
3 is c
  • seq命令是取整命令,其用法是
    seq 1 5代表列出1到5之间的所有整数
    同样的,seq 1 $#代表列出1到"所有参数个数"之间的所有整数
  • 脚本里虽然没有写$2,$3但是还是读入了b c这两个参数,所以使用了shift后,可以逐次将后面的参数向左移动,这样很好的做到了对每个参数的访问

猜你喜欢

转载自blog.csdn.net/qq_42428671/article/details/105885774
今日推荐