6

ファイルに HTML の行を追加する必要がある 4 つの Web サーバーがあるとします。ご覧のとおり、cluster=の後に整数を表示する必要があります

for i in 01 02 03 04; do ssh web.${i}.domain.com 'echo "<img src=beacon.gif?cluster=${i}>" >> /var/www/index.html'; done

これはどのように達成できますか?前もって感謝します。

4

3 に答える 3

17

'前後に注意してください${i}

for i in 01 02 03 04; do
    ssh web.${i}.domain.com 'echo "<img src=beacon.gif?cluster='${i}'>" >> /var/www/index.html'
done

編集:シェルでの引用とプログラミング言語での文字列リテラルには大きな違いがあります。シェルでは、「引用符を使用して、特定の文字または単語の特別な意味をシェルから削除します」(bash マニュアル)。次の行は bash と同じです。

'foo bar'
foo' 'bar

アルファベット文字を引用する必要はありませんが、読みやすくなります。"あなたの場合、 andのような特殊文字のみ<を引用する必要があります。ただし、変数$iには数字しか含まれておらず、この置換は引用符の外側で安全に実行できます。

于 2012-06-04T20:02:26.593 に答える
1
for i in 01 02 03 04
do
  ssh web.${i}.domain.com "echo \"<img src=beacon.gif?cluster=${i}>\" >> /var/www/index.html
done

基本的には二重引用符を使用するだけですが、内側の二重引用符をエスケープする必要があります。

于 2012-06-04T20:05:23.657 に答える
1

私はこれがそれを行うべきだと思います:

"echo \"<img src=beacon.gif?cluster=${i}>\" >> /var/www/index.html"
于 2012-06-04T20:02:09.643 に答える