2012-08-13 97 views
0

在bash腳本中,我不記得如何使用變量的值作爲文件夾名稱的子字符串。例如: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左右,但沒有成功。我應該怎麼做?

+0

你得到什麼錯誤? – 2012-08-13 09:03:36

+0

將錯誤添加到原始帖子。 – 2012-08-13 09:06:09

回答

2

嘗試這樣的:

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

謝謝!這與Will Vousden提出的解決方案有何不同? – 2012-08-13 09:10:58

+1

括號內的變量是避免命名問題的正確方法。此外,用雙引號括起for參數總是更好。 – matteomattei 2012-08-13 09:43:11

1

$i後面的下劃線將被計爲變量名的一部分。嘗試在引號引起它:

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

編輯:matteomattei的版本可能是比較正確的。