Variables 具有两个条件的For循环读取变量
出于某些原因,下面的For循环没有进行迭代,请提供帮助 我得到了生成的dat文件,但是sed中的变量没有从for循环中循环Variables 具有两个条件的For循环读取变量,variables,unix,for-loop,environment-variables,Variables,Unix,For Loop,Environment Variables,出于某些原因,下面的For循环没有进行迭代,请提供帮助 我得到了生成的dat文件,但是sed中的变量没有从for循环中循环 #!/bin/sh input="/var/tmp/jay/apinfo" host="/var/tmp/jay/hosts" cat $input cat $host for inst in $(cat $input);do for h in $(cat $host);do sed -e "s/eb/$inst/g;s/alvcd/$h/g" env.dat > /
#!/bin/sh
input="/var/tmp/jay/apinfo"
host="/var/tmp/jay/hosts"
cat $input
cat $host
for inst in $(cat $input);do
for h in $(cat $host);do
sed -e "s/eb/$inst/g;s/alvcd/$h/g" env.dat > /var/tmp/jay/$inst.dat
done;done
--请参阅,了解从文件读取的正确做法。除此之外--现在,此代码覆盖了
$inst.dat
很多次;h
中的最后一个值将始终是“赢”的值,覆盖该文件之前的所有值。如何最好地解决这一问题,需要对你所期望的结果进行描述,而这些结果并不是真实存在的;你能建立一个某人可以用来自己运行脚本,并比较实际结果和期望的结果吗?例如,如果你写的是$inst-$h.dat
,那么对于每个组合,你实际上都有一个单独的输出文件;这就更有意义了。其他潜在的bug与对sed
有意义的值有关(例如,&0
将不再是它本身,而是指整个原始字符串)——但在不知道实际值是什么样的情况下,大部分都是推测。有关不依赖于sed且不受其限制的字符串替换实践,请参阅。以下是内部带有sed的代码片段,用于说明sed不起作用。sed无法用i值替换$i,无法识别变量i。对于{3..9}中的i;do sed-e的s/ap01/ap0$i/g’ebr-ap0$i.dat;完成上述循环更多ebr-ap01.dat base.node.name=ebr-ap01中使用的文件内容