我需要将关联数组的内容打印到 bash 中的文件中。控制台输出打印工作正常,但是当我尝试将其打印到文件时,只有一个元素被打印。这是我的代码
for KEY in "${!SYMBOLICLINK[@]}"; do
printf "$KEY --> ${SYMBOLICLINK[$KEY]}" > /tmp/symlinks.txt
# Print the KEY value
echo " $KEY --> ${SYMBOLICLINK[$KEY]}"
done
有人可以告诉我我在这里缺少什么吗
我也经历了这个
但它没有帮助
这是它不适合您的地方:
printf "$KEY --> ${SYMBOLICLINK[$KEY]}" > /tmp/symlinks.txt
该>
重定向覆盖文件。你想要>>
, 追加。
总的来说,我会像这样编写您的代码,以提高安全性、可读性和性能:
for KEY in "${!SYMBOLICLINK[@]}"; do
printf "%s --> %s\n" "$KEY" "${SYMBOLICLINK[$KEY]}"
done | tee /tmp/symlinks.txt
原因:
printf
优于 echo
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句