运维开发网
广告位招商联系QQ:123077622
 
广告位招商联系QQ:123077622

ant – 使用scp时for循环中的@

运维开发网 https://www.qedev.com 2020-05-09 12:34 出处:网络 作者:运维开发网整理
请看看这一行: ${server_username}:${server_password}@@{server}:/tmp 双@@引起问题.而不是user:pass @ server它显示为user:passserver,因此无法连接到远程ssh服务器. 你怎么告诉蚂蚁离开@ be? 这是我的代码: <for list="${externalLibs}" param="library"> <s
请看看这一行:

${server_username}:${server_password}@@{server}:/tmp

双@@引起问题.而不是user:pass @ server它显示为user:passserver,因此无法连接到远程ssh服务器.

你怎么告诉蚂蚁离开@ be?

这是我的代码:

<for list="${externalLibs}" param="library"> 
  <sequential>
    <for list="${servers}" param="server"> 
      <sequential>
        <echo> Copying @{library} to @{server} ${server_username}:${server_password}@@@{server}:/tmp/@{library}/${@{library}}/ 
        </echo>
        <scp todir="${server_username}:${server_password}@@@{server}:/tmp/@{library}/${@{library}}/">     
          <fileset dir="/tmp/@{library}/${@{library}}/" /> 
        </scp>
      </sequential> 
    </for>
  </sequential> 
</for>

在echo命令中,它显示如下:

Copying LibraryName to

myserver.domain.com

username:password@{server}:/tmp/LibraryName/LibraryBar

你通过加倍来逃避@,就像在@@中一样.

所以在你的情况下它将是:

${server_username}:${server_password}@@@{server}:/tmp

BTW,同样的规则适用于$escape,$$只打印一个$.

回复OP的评论

例:

<property name="server_username" value="user-name"/>
<property name="server_password" value="passwd"/>

<for list="s1.foo.bar,s2.foo.bar,s3.foo.bar" param="server">
  <sequential>
    <echo message="${server_username}:${server_password}@@@{server}:/tmp"/>
  </sequential>
</ac>

这会产生:

[echo] user-name:[email protected]:/tmp
 [echo] user-name:[email protected]:/tmp
 [echo] user-name:[email protected]:/tmp

所以,你的问题在其他地方,可能在循环设置代码中

扫码领视频副本.gif

0

精彩评论

暂无评论...
验证码 换一张
取 消