【发布时间】:2014-11-16 06:49:03
【问题描述】:
我正在尝试制作一个 bash 脚本来关闭某些查找器窗口(我在 MacOSX 上)。不幸的是,一旦发现第一个窗口未打开,脚本就会终止。 (例如:没有打开标题为“通信”的窗口,但打开了“编辑器”窗口;没有关闭窗口)。如果我打开一个名为 Communication 的窗口,它会关闭,但在第一个命令失败后什么也没有。我试过退出并出错,并取出“set -e”,但似乎没有任何效果。这是我的脚本:
#!/bin/bash
set -e
osascript <<EOF
tell application "Finder"
close window "Communication"
close window "Editors"
close window "Gaming"
close window "Music"
close window "Technical"
close window "Text Editors"
close window "Utilites"
close window "Camera"
close window "External"
close window "TAB Actual"
end tell
它给了我
error: 24:57: execution error: Finder got an error: Can't get window <"first window found to not be open">. (-1728) (1)
我不知道这是否意味着什么,但代码正在通过 Automator 运行。
感谢任何可以帮助我的人,是的,我对 bash 很陌生。
【问题讨论】:
-
如果可能的话,也许可以找到一种方法来检测窗口何时打开,并在空白时间后单独关闭打开的窗口?
-
欢迎来到 bash!不太熟悉 OSX,但从 bash 的角度来看,我建议你 1)从 iterm 或其他东西运行它,这样你就可以看到发生了什么 2)将 set -x 添加到你的脚本中 - 这将打印出很多有用的调试包括你的东西已经走了多远的信息 3)
-
这是一个 AppleScript,而不是 bash 问题。 Bash 只运行一个命令 -
osascript- 所以当osascript错误时它会做什么是无关紧要的。问题是当任何close window语句失败时osascript停止,因此您需要修复它。 -
@fquinner 谢谢,我觉得很受欢迎!
-
@MarkReed 哦,那我听起来很愚蠢
标签: applescript osascript