我可以在Automator中使用expect吗?

时间:2014-08-04 18:56:27

标签: applescript expect

我有一个这样的脚本:

export P4PORT=192.168.1.132:1666
passwd=`security find-generic-password -ws Exchange | /usr/bin/perl -pe "s/\n//g"`

/usr/bin/expect -c "spawn /Users/myname/bin/p4 login; expect \"Enter password:\"; send \"$passwd\r\"; interact"
res=`/Users/myname/bin/p4 login -s`

osascript <<EOF
    tell app "System Events" to display dialog "$res" buttons "OK" default button 1
EOF

在作为简单的shell脚本运行时运行良好。

但是,当我在Mac OS X上的Automator中运行它时,它无法登录。

似乎失败的一点是期待的。如果我用在applescript中的终端内做事来代替它,脚本工作正常。然而,这是一个非常难看的解决方案 - 它会弹出一个终端并在那里进行所有输入。

问题真的是期待吗?它可以解决吗?

由于这必须作为一种服务来实现,所以保持这种方式是很好的。

感谢。

1 个答案:

答案 0 :(得分:0)

原来问题类似于列出here的问题:

您需要使用

expect eof
exit

而不是

interact

它有效,但我不知道为什么。