2014-12-31 101 views
0

我创建了两个变量追加从一个变量的文本复制到另一个变量

LOC="Testing/" 
AVAILABLEDIR="Directory1/ Directory2/ Directory3/" 

我想要做的就是追加“directory1中/” ONLY到“测试/”,然后对得到的值执行功能“测试/ directory1中/”。

然后我想将“Directory2 /”仅添加到Testing /上,并对其执行相同的功能。

然后我想将“Directory3 /”仅附加到Testing /上,并对其执行相同的功能。

的变量将改变,我想AVAILABLEDIR的内容总是以这种方式被附加到LOC使得相同的功能,可以在其上在AVAILABLEDIR

for a in $AVAILABLEDIR; do 
    LOC=$(echo "$LOC" | sed s/$/$AVAILABLEDIR//g) 
    myfunction 
done 
来执行,该列表而不管长度

这是我的尝试,但它所做的只是在变量LOC的末尾附加字符“$ AVAILABLEDIR”。

我真的不知道如何做到这一点,任何帮助将不胜感激,谢谢。

回答

2

你需要不同的变量名:

DIRBASE="Testing/" 
AVAILABLEDIR="Directory1/ Directory2/ Directory3/" 

for a in $AVAILABLEDIR; do 
    LOC="$DIRBASE$a" 
    myfunction 
done 

这是一个有点清洁,以防万一一个目录名称包含空格:

DIRBASE="Testing/" 
AVAILABLEDIR=(Directory1/ Directory2/ Directory3/) 

for a in "${AVAILABLEDIR[@]}"; do 
    LOC="$DIRBASE$a" 
    myfunction 
done 
相关问题