Applescript 我可以在自动机内部使用expect吗?
我有这样一个脚本:Applescript 我可以在自动机内部使用expect吗?,applescript,expect,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
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脚本运行时,它可以完美地运行
然而,当我在MacOSX上的Automator中运行它时,它无法登录
似乎失败的部分是预期的部分。如果我用在applescript中的终端内部执行操作来代替它,那么脚本工作得很好。然而,这是一个相当丑陋的解决方案-它弹出一个终端,并在那里进行所有的键入
问题真的与expect有关吗?它能被改变吗
因为这必须作为一种服务来实现,所以保持这种方式是很好的
谢谢。结果表明问题与所列问题类似: 你需要使用
expect eof
exit
而不是
interact
这很有效,但我不知道为什么