我试图在bash中将元素添加到数组中。我在查询和循环查询。
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正在做什么来重置数组。
发布于 2020-03-04 15:44:07
在管道中,您正在隐式地创建一个具有自己的命名空间的新子subshell。试着避开管道:
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"; donehttps://stackoverflow.com/questions/60529609
复制相似问题