当前位置: 技术问答>linux和unix
shell 参数数目不固定如何遍历(主要原因是包含带空格的参数)
来源: 互联网 发布时间:2016-05-18
本文导语: shell 参数数目不固定如何遍历(主要原因是包含带空格的参数) 普通参数遍历没有问题,一但某个参数是带有空格格的,那就完蛋了. 我用是的for i in $* 请大家指教. | 可以用shift #!/bin/sh n=0 unti...
shell 参数数目不固定如何遍历(主要原因是包含带空格的参数)
普通参数遍历没有问题,一但某个参数是带有空格格的,那就完蛋了.
我用是的for i in $*
请大家指教.
普通参数遍历没有问题,一但某个参数是带有空格格的,那就完蛋了.
我用是的for i in $*
请大家指教.
|
可以用shift
#!/bin/sh
n=0
until [ -z "$1" ]
do
((n += 1))
echo '$'$n="$1"
shift
done
exit 0
#!/bin/sh
n=0
until [ -z "$1" ]
do
((n += 1))
echo '$'$n="$1"
shift
done
exit 0
|
你应该把你的带空格的参数用引号括起来,这样shell才会把它当成一个参数,shell程序无法去猜测你的意思.
|
1、按照2楼的方法,使用shift
2、使用:for i in "$@"
2、使用:for i in "$@"
|
第二种方法,学习了
|
确实用shift和“$@"就可以了
为什么要加双引号呢,就是为了不让shell程序吃掉一些空白的字符
可以参考unix shell编程,里面有详细的shell的用法
为什么要加双引号呢,就是为了不让shell程序吃掉一些空白的字符
可以参考unix shell编程,里面有详细的shell的用法