【问题标题】:How to iterate through part of the positional arguments in a command procedure in bash?如何在bash的命令过程中迭代部分位置参数?
【发布时间】:2014-06-21 16:54:15
【问题描述】:

我已经编写了一个带有 12 个位置参数的命令过程。我怎样才能只遍历前 10 个(例如)。如果我使用shift [n],那么参数 $0 会出现,但我不想使用它。 我可以使用列表理解之类的东西吗?:

for arg in [$1..$10]
do 
   echo $arg
done

【问题讨论】:

  • 请添加相关语言标签。
  • 我正在编写一个命令过程,我用bash name arguments编译它

标签: bash command arguments procedure


【解决方案1】:

像这样使用参数扩展:

for i in "${@:1:10}"; do
   echo "$i"
done

更多信息,请参阅man bash -> Parameter Expansion -> Substring Expansion

【讨论】:

  • 请使用双引号("${@:1:10}"echo "$i")以避免参数中出现有趣字符(空格、通配符等)的问题。
猜你喜欢
  • 2018-09-07
  • 1970-01-01
  • 1970-01-01
  • 2010-09-20
  • 1970-01-01
  • 2023-01-13
  • 2017-06-18
相关资源
最近更新 更多