Bash:如何使用变量值作为文件夹名称的子字符串

时间:2012-08-13 09:00:34

标签: bash shell variables substring

在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周围使用反引号,但没有成功。我该怎么办?

2 个答案:

答案 0 :(得分:2)

试试这个:

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

答案 1 :(得分:1)

$i后面的下划线被视为变量名称的一部分。请尝试将其括在引号中:

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

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