にmy question私はループを使用することを学び、最終的にソフトウェアのマルチインスタンスのインストールスクリプトを手助けします。ありがとうございます:)シェルを複数変数付きのループのために
私はsedを使って設定ファイルを自動セットアップしようとしています。このために私はループ内に多変数を必要とします。私は
IPADDR=`ifconfig | awk '{print $2}' | egrep -o '([0-9]+\.){3}[0-9]+'|grep -v 127.0.0.1`
for ipaddr in ${IPADDR[@]}; do echo $ipaddr; done
for iphost in ${IPADDR[@]}; do host $iphost |grep pointer | awk '{print $NF}' RS='.\n'; done
システムから私のスクリプトをIP-なアドレスはおよびIPの(PTR)のためのホスト名を読み
は知っている、3 IPのは、そこにAR、IP-アドレスとホスト名を知っています。
IP(3)の番号は現在私の001 002 003です。これはうまく動作しています。
私がsedで設定ファイルを編集したいのなら、これを行うには3つの変数が必要です。
コマンド私の場合anyname-001 -some-parameterはパスへのコピーです。私のパスは、私は3 IP-アドレスと3も必要SED使用することによっては、/ etc/anyname-003今
の/ etc/anyname-001であると/ etc/anyname-003
ホスト名。
sed -i 's/IPADDR/'${ipaddr}'/g' /etc/anyname-${number}/config.cfg
sed -i 's/HOSTNAME/'${hostname}'/g' /etc/anyname-${number}/config.cfg
どのようにすれば、すべての変数を同時にループすることができますか?多くのことを試してください。私は、ネストされたループを見つけたが、それは
001 >> IP機能しません:AAAA >>ホスト名aaa.aaa.aa
002 >> IP:BBBB >>ホスト名
bbb.bbb.bbを003 >> IP:CCCC >>ホスト名ccc.ccc.cc
、あなたは彼らをループすることができ、あなたの配列のホスト名とIPADDRの両方の長さが同じであると仮定すると、あなたに
:だから、全体的なコードは何かのようになります
実際に話題になっている質問があるかもしれませんが、今はちょっと埋まっていて、他の誰かが再現できないことが考えられます(コードを実行するためには同じDNS設定のシステムが必要ですおよびIPアドレス)。この問題は、その重複が助けにならないため閉鎖されている場合は、[最小限の、完全で証明可能な例](http://stackoverflow.com/help/mcve) - コードを作成してみてください。同じIP /ホスト/インタフェース構成を持たなくても問題はありません。 –
他の人が回答をテストできるように質問を書き直す方法がわからない場合は、ホスト名やIPアドレスなどとは関係のない基本的なbash質問のテストケースを作成することを検討してください。結局のところ、 'for 'ループを実行する方法はたくさんあります。そうすることで、bash-languageの質問は、部分的にしか記述していないより大きな文脈から分離することで、はっきりと分かりやすくなります。あなたがこのような書き直しをすると、私に知らせるようになります。 –