ssh -t for loop コマンドにネストされた for ループ

ssh -t for loop コマンドにネストされた 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

頑張ってください、ジャック

ベストアンサー1

おすすめ記事