【问题标题】:how to escape characters in xdotool如何在 xdotool 中转义字符
【发布时间】:2012-09-25 20:46:47
【问题描述】:

我有这个脚本来打开一个新的控制台,通过 ssh 进入服务器,运行一个部署命令。

我将部署的版本传递给脚本

xdotool key ctrl+alt+t
sleep 3
xdotool type "ssh myserver"
xdotool key Return
sleep 10
xdotool type "password"
xdotool key Return
xdotool type "sh path-to-script/deploy.sh $1"
xdotool key Return

我有几个问题,我已经尝试用谷歌搜索解决方案,但没有成功。

  • 字符/ 转换为&。当我运行脚本时
  • 在控制台中复制和粘贴它可以工作,但如果我将其作为 sh 文件运行则不行
  • $1 未计算

你能给我一些指导吗? xdotool 不是强制性的,我会使用它的任何工作

注意:我不能通过命令通过 ssh,因为公司的安全政治,如果我不能在 我的服务器

【问题讨论】:

    标签: xdotool


    【解决方案1】:

    这里有类似的问题: http://code.google.com/p/semicomplete/issues/detail?id=13#c29
    试试:

    xdotool type setxkbmap de
    xdotool key Return
    xdotool type "sh path-to-script/deploy.sh $1"
    xdotool key Return
    

    如果你写一个脚本可能会更好:

    #!/bin/bash
    xterm -e "ssh myserver \"sh path-to-script/deploy.sh $1\"; sleep 5"
    

    并像这样调用它:

    ./theAboveScript.sh &
    sleep 10
    xdotool type "password"
    xdotool key Return
    

    【讨论】:

    • 第二个选项很好,问题是它在通道0上执行请求失败时跳转。我尝试使用 ssh myserver "ls" 和相同的结果,在其他服务器上它可以工作,我认为它可能是服务器 ssh 配置。我无法修改的东西
    【解决方案2】:

    “期望”可能是一个很好的解决方案。

    您可以使用您的参数作为脚本开始跟踪。

    #!/usr/bin/expect -f
    spawn ssh myserver;
    expect "Password:";
    send "password\n";
    expect "me@myserver:~$";
    send "sh path-to-script/deploy.sh $argv\n";
    interact
    

    【讨论】:

      猜你喜欢
      • 2010-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-25
      • 2011-01-18
      • 2014-04-23
      • 2012-05-08
      • 2018-06-20
      相关资源
      最近更新 更多