【问题标题】:Bash: how to use variable value as substring of a folder nameBash:如何使用变量值作为文件夹名称的子字符串
【发布时间】:2012-08-09 11:47:35
【问题描述】:

在 bash 脚本中,我不记得如何将变量的值用作文件夹名称的子字符串。示例:

我有文件夹:

test_1.0_xxx  test_1.2_yyy test_1.4_zzz

我想做以下事情:

for i in 1.0 1.2 1.4
do
  cd test_$i_*
  # do something
done

语法好像不对:

bash: cd: test_*: No such file or directory

我也尝试在$i 周围使用反引号,但没有成功。我该怎么做?

【问题讨论】:

  • 将错误添加到原帖中。

标签: bash shell variables substring


【解决方案1】:

试试这个:

#!/bin/bash
for i in "1.0" "1.2" "1.4"
do
  cd test_${i}_*
  # do something
done

【讨论】:

  • 谢谢!这与 Will Vousden 建议的解决方案有何不同?
  • 用括号括起来变量是避免命名问题的正确方法。此外,用双引号将 for 参数括起来总是更好。
【解决方案2】:

$i 后面的下划线被计为变量名的一部分。尝试用引号括起来:

for i in 1.0 1.2 1.4
do
  cd test_"$i"_*
  # do something
done

编辑:matteomattei 的版本可能更正确。

【讨论】:

    猜你喜欢
    • 2016-02-24
    • 1970-01-01
    • 2022-08-19
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多