【问题标题】:Shell Script for loop stops after the first iteration (very simple code) [duplicate]Shell Script for loop 在第一次迭代后停止(非常简单的代码)[重复]
【发布时间】:2019-10-08 07:46:31
【问题描述】:

我对 shell 脚本很陌生。我正在学习它的基础。我非常简单的 for 循环不起作用。它总是在第一次迭代时停止。我已经按照文档创建了一个数组变量,并通过超级简单的代码使用 for 循环。

#!/bin/bash

LIST=()
LIST+=('aaa') 
LIST+=('bbb') 
LIST+=('ccc') 

for i in $LIST
do
    echo '----------'$i'----------'
done

它只显示 'aaa' 然后停止循环。我真的不知道。请帮忙。

【问题讨论】:

    标签: bash


    【解决方案1】:

    $LIST 扩展为数组LIST 中的第一个元素,它与${LIST[0]} 基本相同。您需要在双引号中使用${LIST[@]} 将每个元素作为一个单独的单词,例如:

    #!/bin/bash
    
    LIST=()
    LIST+=('aaa') 
    LIST+=('bbb') 
    LIST+=('ccc') 
    
    for i in "${LIST[@]}"
    do
        echo '----------'"$i"'----------'
    done
    

    参考Bash Reference Manual § Arrays

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-17
      相关资源
      最近更新 更多