在 ssh -t for 循环命令中嵌套 for 循环

在 ssh -t for 循环命令中嵌套 for 循环

我一直试图通过创建一个循环来使用 sed 命令编辑 ifcfg 文件来节省一些时间。为了进行测试,我首先尝试以下循环:

for k in `cat *FILE CONTAINING HOSTNAME*`; do echo $k; ssh -t *USER*@$k "for l in `ls /etc/sysconfig/network-scripts/ | grep ifcfg-ens`; do echo $l; done"; done

这一切所做的只是返回主机名、行空间并且该连接已关闭。

然后我尝试了以下方法:

for k in `cat *FILE CONTAINING HOSTNAME*`; do echo $k; ssh -t *USER*@$k "for l in \`ls /etc/sysconfig/network-scripts | grep ifcfg-ens\`; do echo $l; done"; done

这返回了主机名,然后返回了 8 个行空间(就像它按预期打印输出一样),但终端中没有实际输出。

如果有人对我如何实现这一目标有任何想法,我将不胜感激。

更新:这里的最终目标是运行 sed 命令,从 /etc/sysconfig/network-scripts 中的任何 ifcfg-ens* 文件中删除第 1 到 13 行。然后使用类似的 for 循环将行添加到大约 10 个主机的文件中。

ls /etc/sysconfig/network-scripts/ 的输出 | grep ifcfg-ens 在远程主机上返回以下内容:

ls /etc/sysconfig/network-scripts | grep ifcfg-ens
ifcfg-ens1f0
ifcfg-ens1f1
ifcfg-ens2f0
ifcfg-ens2f1
ifcfg-ens7f0
ifcfg-ens7f1
ifcfg-ens8f0
ifcfg-ens8f1

祝一切顺利,杰克

相关内容