2012-06-14 61 views
0

合併變量在UNIX:在UNIX

我有幾個變量:

FOLDER0=/home/user0 
FOLDER1=/home/user1 
FOLDER2=/home/user2 
FOLDER3=/home/user3 
FOLDER=FOLDER 

for i in 0 1 2 3 
do 
${FOLDER}${i} // print /home/user0, /home/user1 and so on based on value of i 
done 

的$ {I} $ {FOLDER}值應打印/家庭/用戶0,/家庭/ user1和所以基於我的價值 有沒有什麼辦法可以做到這一點?

編輯: 把數字放在變量的末尾而不是在開頭。

+1

請參閱http://www.codeislove.org/?p=12和http://www.gnu.org/software/bash/manual/bash.html#Shell-Parameter-Expansion – cmbuckley

+0

謝謝@cbuckley,請張貼這個答案,我會接受它。正是我在找什麼! :) –

回答

2

使用eval

#!/usr/bin/bash 

FOLDER0=/home/user0 
FOLDER1=/home/user1 
FOLDER2=/home/user2 
FOLDER3=/home/user3 
FOLDER=FOLDER 

for i in {0..3}; do 
    eval var=\${FOLDER${i}} 
    print $var 
done 

注:我的循環是慶典/ KSH-具體,但eval結構是沒有的。