AppleScript:shell脚本之间的延迟
我尝试这样做:AppleScript:shell脚本之间的延迟,shell,applescript,delay,scp,mkdir,Shell,Applescript,Delay,Scp,Mkdir,我尝试这样做: do shell script "mkdir -p " & workingDir & userName do shell script "/usr/local/bin/sshpass -p " & userPass & " scp -pr " & userName & "@localhost:\"/Users/" & userName & "/Desktop/*\" " & workingDir &
do shell script "mkdir -p " & workingDir & userName
do shell script "/usr/local/bin/sshpass -p " & userPass & " scp -pr " & userName & "@localhost:\"/Users/" & userName & "/Desktop/*\" " & workingDir & userName
脚本在我的Mac上创建文件夹,然后将数据从远程Mac复制到此文件夹
我得到了这个错误:error“packet\u write\u wait:Connection to::1端口22:breaked pipe”编号1
但是,如果我在两行之间设置delay10
,它可以正常工作
那么我的问题是,我如何才能毫不拖延地以优雅的方式解决它呢
顺便说一下,我已经试过了:
的解决方案将PID设置为
并重复直到
。这没用&&
符号(也使用;
符号)在一行中设置两行。这没有帮助:do shell脚本”/usr/local/bin/sshpass-p“&userPass&&&rsync
-r“&userName&”@localhost:\“/Users/”&userName&“/Desktop*\”“&workingDir&userName
我倾向于认为这个问题不存在于一个命令中的两个命令,但AppleScript不允许长命令完成其活动…我已经尝试了“;”但它不起作用。我查了一下“&&”也没用,我很好奇为什么你认为添加一个
延迟
行是不雅观的。我的意思是,您可以使用unixsleep
函数,将shell脚本连接到一行中。这样会更好吗?想到的另一件事是更改第二个DSS,以便首先将cd
放入工作目录并使用相对路径。cd
命令应该确保目录可以使用,避免任何延迟。我将代码(两行脚本mkdir+scp)更改为:do shell script”/usr/local/bin/sshpass-p“&userPass&“rsync-r”&userName&@localhost:\“/Users/”&userName&“/Desktop/*\”“&workingDir&userName,但这种情况仍然存在。我认为AppleScript会在此行结束前关闭DSS。