arrays - 为什么这个 for 循环不处理数组的所有元素?

标签 arrays bash for-loop

给定以下脚本:

#!/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/

相关文章:

javascript - javascript 中的对象数组未按预期返回

python - numpy 数组的 set_printoptions 不适用于 numpy ndarray?

bash 子字符串 - 结合命令和切片

linux - linux服务器上保存命令历史记录的所有位置在哪里

C++:条件未应用于简单的嵌套 if-then-else 语句?

Java函数分析

javascript - 如何更新由 REACTJS 中的数组映射呈现的输入文本

javascript - 使用 ko.observableArray 检查重复项

linux - 以 root 身份执行的脚本中的 su 命令似乎不一致

python - 如何跳过 `for` 循环中的第一个元素?