[英]Strange Bash Variable Assignment Behaviour in For Loop
我在for循环内分配了一个变量,在该循环中,我从提供的输入中创建了输出文件名。
我以前从未遇到过数组或for循环的任何问题,但是行为非常奇怪。 我在代码中的其他地方都使用过类似的for循环,它们都可以正常工作。 下面的代码工作正常,并且已按预期分配了变量。
count=1
for i in "${INPUT[@]}"
do
local INPUT[$count]=`echo -n "$i" | sed 's/\(.\)/\1\n/g'`
let count=count+1
done
一切正常,但是,下面的代码不起作用。
count=1
for i in "${INPUT[@]}"
do
local OUTFILE[$count]="$i"
let count=count+1
done
如果我回显了$ INPUT [$ count]或$ i的值,则会得到预期的结果,但是,当我在分配后回显$ OUTFILE [$ count]的值时,其结果为[1],[2] ],[3]等,而不是个人名称,个人名称,个人名称等。
听起来您正在写类似
echo $OUTFILE[$count]
你什么时候应该写
echo ${OUTFILE[$count]}
要将一个数组复制到另一个BASH数组中,您不需要循环,您可以执行以下操作:
OUTFILE=( "${INPUT[@]}" )
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.