1

我在文件中有 3 行/root/backuplist.txt

第一个echo打印完美,但最后一个打印空行;我不确定为什么。不知何故,$DIRS价值变得不稳定。

#!/bin/bash

cat /root/backuplist.txt |
while read line
do
  DIRS+="$line "
  echo $DIRS
done

echo $DIRS
4

1 回答 1

3

问题是在这里使用管道,它为您的循环分叉一个子外壳while,因此在子外壳中进行的更改DIRS在父外壳中不可见。此外cat在这里是不必要的。

有这种方式:

#!/bin/bash

while read -r line
do
   DIRS+="$line "
   echo "$DIRS"
done < /root/backuplist.txt

echo "$DIRS"
于 2015-03-07T14:32:24.777 回答