【问题标题】:How to use variables in {a..z} range construct?如何在 {a..z} 范围构造中使用变量?
【发布时间】:2014-09-09 23:35:19
【问题描述】:

我正在尝试做一个类似于这个基本循环的循环:

storage-33:~#  echo {a..z}           
a b c d e f g h i j k l m n o p q r s t u v w x y z

但是,我在脚本中设置了两个变量,分别为 $first_sd 和 $last_sd

在我的 shell 上运行它时没有成功。这种行为不是我预期的从 A 到 Z 的循环。它实际上根本不做循环,我需要转换我的变量还是有什么技巧可以让它工作?在这里查看我正在尝试做的坏例子(这不起作用)

storage-33:~# for i in {$first_sd..$last_sd}; do echo HI $i; done
HI {a..h}

谢谢!

【问题讨论】:

标签: bash loops variables


【解决方案1】:

使用eval

for i in $(eval echo "{$first_sd..$last_sd}"); do echo HI $i; done

【讨论】:

  • 谢谢!很有帮助。不知道 eval 选项
【解决方案2】:

您可以使用eval记住转义相应的字符:

eval "for i in {$first_sd..$last_sd}; do echo HI \$i; done"

【讨论】:

  • 谢谢!很有帮助。不知道 eval 选项
猜你喜欢
  • 2011-03-12
  • 1970-01-01
  • 2014-07-28
  • 1970-01-01
  • 2014-09-18
  • 2019-10-05
  • 2016-01-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多