我的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