假设我有四个网络服务器,我需要在文件中添加一行HTML。如您所见,我需要在 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
如何实现这一目标?提前谢谢。
答案 0 :(得分:10)
请注意'
之前和之后的${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中,“引用用于删除某些字符或单词到shell的特殊含义”(bash手册)。以下行与bash相同:
'foo bar'
foo' 'bar
无需引用字母字符 - 但它增强了可读性。在您的情况下,只能引用"
和<
等特殊字符。但变量$i
只包含数字,这种替换可以在引号之外安全地完成。
答案 1 :(得分:0)
我认为应该这样做:
"echo \"<img src=beacon.gif?cluster=${i}>\" >> /var/www/index.html"
答案 2 :(得分:0)
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
基本上,只需使用双引号,但你必须逃避内部引号。