更改shell中的变量值

时间:2019-03-20 15:41:31

标签: shell sed

我有2个shell脚本,它们的内容是:

1.txt

a=1
b=2
c=3

2.txt

a=1
b=2
c=3 

现在我想将a=1更改为a=7a=8,所以我写了一个shell脚本

f={7,8}
for i in {0..1}
do
    sed -i "s/a=1/a=${f[${i}]}/g" $i.txt
done

但是失败了。有人能弄清楚吗?

1 个答案:

答案 0 :(得分:0)

要定义数组,请使用括号且不要使用逗号:

f=(7 8)

您还需要将$i调整1以确保文件名正确:

sed -i "s/a=1/a=${f[i]}/g" "$((i+1)).txt"

(请注意,${f[${i}]}可以缩短为${f[i]},因为数组索引是在算术上下文中求值的,其中美元符号是可选的。)