shell 新手提问,获取第N个到M个参数列表怎么写?

liuxiaomer 2013-06-17 11:03:33
比如,
AAA.sh a,b,c,d,e,f,g

我想获取第2个参数以后的参数列表。
我是这么写的

output=""
for((i=3;i<=$#;i++));
do
output="${output} $$i "
done

echo ${ALL_NODES}


注意红色部分,结果他先处理了 $$ 打出了进程编号。。
23478i 23478i 23478i

实际上我想输出c d e f g

这里应该怎么写呢?
...全文
1359 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ljc007 2013-06-18
  • 打赏
  • 举报
回复
引用 5 楼 liuxiaomer 的回复:
自己解决了。 用eval ,在此分享
变量间接引用,这样写比较简洁:
#!/bin/bash
output=""
for((i=3;i<=$#;i++)); do 
    j=${!i}
    output="${output} $j "
done
echo ${output}
liuxiaomer 2013-06-17
  • 打赏
  • 举报
回复
自己解决了。 用eval ,在此分享 AAA.sh a,b,c,d,e,f,g output="" for((i=3;i<=$#;i++)); do output="${output} $i " done echo ${ALL_NODES} 这个结果是 3,4,5,6,7 output="" for((i=3;i<=$#;i++)); do eval j=\$$i output="${output} $j " done echo ${ALL_NODES} 这个结果是 c,d,e,f,g
pix77 2013-06-17
  • 打赏
  • 举报
回复
output="$*" echo $output | awk '{for(i=2;i<=NF;i++)printf $i" "}'
liuxiaomer 2013-06-17
  • 打赏
  • 举报
回复
没人知道吗?我简化一下问题好了, 比如现在传入了很多参数 a,b,c,d,e..... 我如何取出b以后的参数列表。 参数个数是可变的
liuxiaomer 2013-06-17
  • 打赏
  • 举报
回复
不行的,如果改成$i 输出的就是 3 4 5 6 7
pix77 2013-06-17
  • 打赏
  • 举报
回复
$$i改为$i
personball 2013-06-17
  • 打赏
  • 举报
回复
bash的话,可以试试shift http://www.tldp.org/LDP/Bash-Beginners-Guide/html/sect_09_07.html

742

社区成员

发帖
与我相关
我的任务
社区描述
该论坛主要探讨Linux系统在IBM Power平台的安装、部署、应用开发等话题,并为网友们提供自由交流的平台。
社区管理员
  • Power Linux社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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