对位置参数 shell 一问

ITsignal 2007-03-30 01:22:41
如果想取得第counter 个参数

counter=9
filname=$(($counter))
echo $filename 不行艾,另外有什么可以做到的。

当然循环可以做到,想问问别的。
for name in $@;do
filename=$name
done
...全文
197 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ITsignal 2007-03-30
  • 打赏
  • 举报
回复
谢谢大家。
利用shift命令的方式可行,但如果我想用参数 9 后,又想用参数1,这就麻烦了

yecheng_110(),你好,eval 这个关键字挺好使。
yecheng_110 2007-03-30
  • 打赏
  • 举报
回复
counter=2
eval argN=\${$counter}
echo $argN

不好意思
是我搞错了
上面这样写是行的

bash count.sh aaa bbb
bbb
LexChen 2007-03-30
  • 打赏
  • 举报
回复
利用shift命令
执行
shift n
之后,$1就指向了第n+1个参数
yecheng_110 2007-03-30
  • 打赏
  • 举报
回复
那可能是我们shell不同
我上面是对的
ITsignal 2007-03-30
  • 打赏
  • 举报
回复
我是想输出bbb哈
ITsignal 2007-03-30
  • 打赏
  • 举报
回复
喔,你是把参数的值和位置弄到一起了,呵呵
ITsignal 2007-03-30
  • 打赏
  • 举报
回复
我说哈,环境是Linux
文件argtest.sh
COUNTER=2
echo $[$COUNTER]

sh argtest.sh aaa bbb

out:2
yecheng_110 2007-03-30
  • 打赏
  • 举报
回复
$ sh count.sh 1 2 3 4 5 6 7 8 9
9
ITsignal 2007-03-30
  • 打赏
  • 举报
回复
不行,这位,结果是1。我试过了
yecheng_110 2007-03-30
  • 打赏
  • 举报
回复
counter=9

echo $[$counter]

23,121

社区成员

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

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