0

我有这个脚本来打开一个新的控制台,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,并且如果我无法在myserver中进行设置,我也不知道该怎么做

4

2 回答 2

0

这里有类似的问题: 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
于 2012-09-25T21:41:26.153 回答
0

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

您可以使用您的参数作为脚本开始关注。

#!/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
于 2012-10-11T08:48:48.600 回答