shell 参数数目不固定如何遍历(主要原因是包含带空格的参数)

blueoceanli 2009-02-16 01:07:27
shell 参数数目不固定如何遍历(主要原因是包含带空格的参数)
普通参数遍历没有问题,一但某个参数是带有空格格的,那就完蛋了.
我用是的for i in $*

请大家指教.
...全文
1256 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
linkejin 2009-02-18
  • 打赏
  • 举报
回复
确实用shift和“$@"就可以了
为什么要加双引号呢,就是为了不让shell程序吃掉一些空白的字符
可以参考unix shell编程,里面有详细的shell的用法
li_yang98 2009-02-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ewuby 的回复:]
1、按照2楼的方法,使用shift
2、使用:for i in "$@"
[/Quote]

第二种方法,学习了
ewuby 2009-02-16
  • 打赏
  • 举报
回复
1、按照2楼的方法,使用shift
2、使用:for i in "$@"
li_yang98 2009-02-16
  • 打赏
  • 举报
回复
可以用shift

#!/bin/sh
n=0

until [ -z "$1" ]
do
((n += 1))
echo '$'$n="$1"
shift
done

exit 0
快乐田伯光 2009-02-16
  • 打赏
  • 举报
回复
你应该把你的带空格的参数用引号括起来,这样shell才会把它当成一个参数,shell程序无法去猜测你的意思.

23,125

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧