【发布时间】:2011-02-22 02:14:47
【问题描述】:
有没有办法在 Mac OS X 10.6 上使用 Spotlight 运行 shell 脚本?我希望能够直接从 Spotlight 调用 shell 脚本,而无需打开终端。
【问题讨论】:
有没有办法在 Mac OS X 10.6 上使用 Spotlight 运行 shell 脚本?我希望能够直接从 Spotlight 调用 shell 脚本,而无需打开终端。
【问题讨论】:
使用 .command 后缀保存您的 shell 脚本 - 这使它可以双击,您也应该能够直接从 Spotlight 运行它。
【讨论】:
[Process completed] 的终端,必须手动关闭。有没有办法避免这种情况?
osascript -e 'tell application "Terminal" to close (every window whose name contains "<script_name>.command")' &只需调整你的脚本名称。
chmod u+x /path/to/file授予它执行权限
我还想补充一点,如果你需要在运行命令后终端窗口消失,你可以设置终端设置来做到这一点。
shell退出时在设置>>shell>>下。
这仍然会让终端运行,但脚本至少会自行清理。
我用它来编写一个脚本来隐藏和显示桌面图标。
【讨论】:
从 MacOS >= 10.0 开始,使终端窗口在完成后消失:
Terminal > Preferences > 选择您的默认配置文件
然后Shell > When the shell exits 选择Close if the shell exited cleanly
【讨论】:
另一种完全避免打开终端的方法:
在 Mac 上打开脚本编辑器,确保从语言下拉列表中选择 AppleScript 并键入
do shell script "touch ~/testfile"
用您选择的代码替换 touch ~/testfile - 正如您所见,它不需要有 .command 后缀,也不需要实际上是脚本。
现在转到文件 |导出并从文件格式:下拉列表中选择应用程序。确保所有选项:未选中,并且从代码符号:下拉列表中选择了不要代码符号。随意命名,随意保存。现在您可以双击新的 AppleScript 应用程序或从 Spotlight 运行它,您的脚本将在不打开终端窗口的情况下运行。
因为它是 AppleScript,所以它可以与 Mac UI 交互——在显示对话框中显示结果、获取用户输入等。https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/conceptual/ASLR_fundamentals.html
【讨论】: