开发者社区> 问答> 正文

在bash的while循环中我的数组出现奇怪的结果

我想在while循环内的bash中填充一个简单的数组。

我尝试这样做:

read -p " Value : " nb

declare -a array

while [[ $nb != "s" ]]
do
    read -p " Value : " nb
    array+=("$nb")
done

echo ${array[@]}

如果我尝试使用1,2,3,4和5作为值,则输出为:

Value : 1
Value : 2
Value : 3
Value : 4
Value : 5 ( to stop the loop and display the array )
2 3 4 5 s

或者,我要这个输出:

Value : 1
Value : 2
Value : 3
Value : 4
Value : 5
Value : s

1 2 3 4 5 你能告诉我我的剧本怎么了吗?

展开
收起
祖安文状元 2020-01-06 16:33:45 292 0
1 条回答
写回答
取消 提交回答
  • while循环内的两行代码需要交换。

    read -p " Value : " nb
    
    declare -a array
    
    while [[ $nb != "s" ]] do
        array+=("$nb")
        read -p " Value : " nb
    done
    echo ${array[@]}
    
    

    现在,您的第一次读取将放入数组中,而您最后一次读取(退出循环)将不会放入数组中。

    2020-01-06 16:34:02
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载