Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Variables 具有两个条件的For循环读取变量_Variables_Unix_For Loop_Environment Variables - Fatal编程技术网

Variables 具有两个条件的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 > /

出于某些原因,下面的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 > /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中使用的文件内容