将文本从一个变量附加到另一个变量

时间:2014-12-31 17:01:52

标签: bash shell append

我创建了两个变量

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

我想要做的是将“Directory1 /”仅附加到“Testing /”上,然后对结果值“Testing / Directory1 /".

执行一个函数。

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

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

变量将发生变化,我希望AVAILABLEDIR的内容始终以这种方式附加到LOC上,以便可以对其执行相同的功能,无论AVAILABLEDIR中的列表长度如何

for a in $AVAILABLEDIR; do
  LOC=$(echo "$LOC" | sed s/$/$AVAILABLEDIR//g)
  myfunction
done

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

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

1 个答案:

答案 0 :(得分: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