ファイルに 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
これはどのように達成できますか?前もって感謝します。
'
前後に注意してください${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
には数字しか含まれておらず、この置換は引用符の外側で安全に実行できます。
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
基本的には二重引用符を使用するだけですが、内側の二重引用符をエスケープする必要があります。
私はこれがそれを行うべきだと思います:
"echo \"<img src=beacon.gif?cluster=${i}>\" >> /var/www/index.html"