给定以下脚本:
#!/bin/bash
asteriskFiles=("sip.conf" "extensions.conf")
for asteriskFile in $asteriskFiles
do
# backup current configuration file
cp somepath/${asteriskFile} test/
echo "test"
done
这只给我输出“test”一次,所以循环只运行一次而不是两次(asteriskFiles 数组中的两个条目)。我究竟做错了什么?感谢您的任何提示!
最佳答案
插图:
$ asteriskFiles=("sip.conf" "extensions.conf")
$ echo $asteriskFiles # is equivalent to echo ${asteriskFiles[0]}
sip.conf
$ echo "${asteriskFiles[@]}"
sip.conf extensions.conf
请注意引号很重要。 echo ${asteriskFiles[@]}
似乎可行,但如果您的任何文件中有空格,bash 会在空格处分词。
关于arrays - 为什么这个 for 循环不处理数组的所有元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11401667/