首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bash循环没有添加到数组中

Bash循环没有添加到数组中
EN

Stack Overflow用户
提问于 2020-03-04 15:37:48
回答 1查看 69关注 0票数 0

我试图在bash中将元素添加到数组中。我在查询和循环查询。

代码语言:javascript
复制
delete_arr=()
delete_arr+=("test")
mysql -e "$sql_statement" | while read directory_name; do 
if [ $counter -gt 0 ]
   then
     delete_arr+=($directory_name)
fi
let counter=counter+1
done

 for i in "${delete_arr[*]}"; do echo "$i"; done

我得到的唯一输出是test。我应该得到更多的数据。查询工作正常,数据被添加到循环中的数组中,但是,当我跳出循环时,数组只包含test,.I正在做什么来重置数组。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-04 15:44:07

在管道中,您正在隐式地创建一个具有自己的命名空间的新子subshell。试着避开管道:

代码语言:javascript
复制
delete_arr=()
delete_arr+=("test")
while read directory_name
do 
    if [ "$counter" -gt 0 ]
    then
        delete_arr+=("$directory_name")
    fi
    counter=$((counter+1))
done < <(mysql -e "$sql_statement")

for i in "${delete_arr[@]}"; do echo "$i"; done
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60529609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档