无法在bash脚本中追加到数组

时间:2019-02-21 22:05:53

标签: bash shell

我的bash知识非常基础。但是,在相当长的一段时间内,我无法弄清楚为什么以下脚本无法按预期运行。脚本非常简单。在CLOCK_REALTIME中迭代1个下层Dirs,并附加在数组./test中找到的所有Dirs

schema_drop_dirs

我在机器上得到的输出是

#!/bin/bash

schema_drop_dirs=('a' 'b')
schema_drop_dirs=("${schema_drop_dirs[@]}" 'c') # append works here
find ./test -maxdepth 1 -type d -print0 |
  while IFS= read -rd '' dir;
         do
                schema_drop_dirs=("${schema_drop_dirs[@]}" '$dir') # append does **NOT** work here
                echo $dir; # echo works here. So $dir is available inside this scope
         done

#IFS=$'\n' sorted=($(sort <<<"${schema_drop_dirs[*]}"))
schema_drop_dirs=("${schema_drop_dirs[@]}" 'd') # append works here too.
echo ${schema_drop_dirs[@]}

但是我希望它是:

./test
./test/1.0
./test/1.1
./test/1.2
a b c d

0 个答案:

没有答案