假設我有四個web服務器,需要將一行HTML添加到文件中。正如你可以看到我需要的整數後集羣出現=在雙引號內執行本地bash變量
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
這又如何實現呢?提前致謝。
假設我有四個web服務器,需要將一行HTML添加到文件中。正如你可以看到我需要的整數後集羣出現=在雙引號內執行本地bash變量
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
編輯:有殼和字符串報價之間的巨大差異在編程語言中。在shell中,「引用用於刪除某些字符或文字對shell的特殊含義」(bash手冊)。以下行與bash相同:
'foo bar'
foo' 'bar
沒有必要引用字母字符 - 但它增強了可讀性。在你的情況下,只有特殊字符如"
和<
必須被引用。但變量$i
只包含數字,並且此替換可以安全地在引號之外完成。
你是男人!我喜歡這個網站。 =) – jdorfman
@nosid:我認爲這將是值得解釋發生了什麼。畢竟你最終做了一個字符串連接,你的解決方案與另外兩個不同。仍+1。 – 0xC0000022L
我想這應該這樣做:
"echo \"<img src=beacon.gif?cluster=${i}>\" >> /var/www/index.html"
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
基本上,只是使用雙引號,但你必須逃避內在的。
圖片標籤在結尾?這是無效的HTML。 – pizza