假设我有四个网络服务器,我需要将一行 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
如何实现?提前致谢。
请注意'
之前和之后${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 手册)。以下 to 行与 bash 相同:
'foo bar'
foo' 'bar
无需引用字母字符 - 但它增强了可读性。在您的情况下,只有特殊字符,例如"
and<
必须被引用。但是变量$i
只包含数字,并且这种替换可以在引号之外安全地完成。
我认为应该这样做:
"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
基本上,只需使用双引号,但您必须转义内部引号。