参数变量故名思议就是用来操作输入参数的变量,知道用户输入了哪些参数,才可以进行相应的处理。
参数变量 | 作用 |
---|---|
$1,$2 … |
取第几个参数的意思 |
$* |
取出所有的参数,解析参数的分割符环境变量 IFS 来决定,如果IFS 变了解析参数就会有问题 |
$@ |
以空格为分割,自动取出所有的参数 |
看看几个例子
- 第一中就是取出第几位的参数
#set lzz niu apple
#echo "$1, $2, $3"
lzz, niu, apple
下标从1开始,取出了相应位置的参数
*后面两个我们放在一起看看
iuzhizhi@lzz-rmbp~ set lzz niu apple
liuzhizhi@lzz-rmbp~ echo "$@"
lzz niu apple
liuzhizhi@lzz-rmbp~ echo "$*"
lzz niu apple
看起来好像一样啊,想起来了 $*
是通过 IFS变量来决定的啊,再试试
liuzhizhi@lzz-rmbp~ set lzz niu apple
liuzhizhi@lzz-rmbp~ echo "$@"
lzz niu apple
liuzhizhi@lzz-rmbp~ echo "$*"
lzzniuapple
这个时 $@
还是正常的,但是$*
就不正常了,所以我们尽量使用 $@
在取全部参数
这是之前写过的一个脚本 shell 输入参数
参考
《linux 程序设计第二章》
声明:
本文出自 “orangleliu笔记本” 博客,转载请务必保留此出处http://blog.csdn.net/orangleliu/article/details/45774349 作者orangleliu 采用署名-非商业性使用-相同方式共享协议