📌  相关文章
📜  在不打开终端的情况下从应用程序 mac 启动 bash 脚本 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:07:57.281000             🧑  作者: Mango

在不打开终端的情况下从应用程序启动Bash脚本

很多程序员都用过Bash脚本来自动化任务,但有时候我们需要在不打开终端的情况下执行这些脚本。本文将介绍如何从应用程序启动Bash脚本。

使用Automator

一种非常简单的方法是使用macOS自带的Automator应用程序:

  1. 打开Automator。
  2. 选择“新建文稿”。
  3. 选择“应用程序”作为类型。
  4. 搜索并选择“运行Shell脚本”动作。
  5. 将你的Bash脚本粘贴到脚本区域内。
  6. 保存应用程序,然后运行即可。

代码示例:

1. 打开Automator。
2. 选择“新建文稿”。
3. 选择“应用程序”作为类型。
4. 搜索并选择“运行Shell脚本”动作。
5. 将你的Bash脚本粘贴到脚本区域内。
6. 保存应用程序,然后运行即可。
使用AppleScript

如果你熟悉AppleScript,你也可以使用它来启动Bash脚本:

do shell script "/path/to/your/script.sh"

/path/to/your/script.sh 替换为你需要启动的脚本路径即可。

代码示例:

使用AppleScript启动Bash脚本:

```applescript
do shell script "/path/to/your/script.sh"

## 使用Launchd

如果你需要在系统启动时自动运行Bash脚本,你可以使用macOS的Launchd服务:

1. 编写一个包含如下内容的plist文件:

```xml
<!DOCTYPE plist PUBLIC 
    "-//Apple Computer//DTD PropertyList 1.0//EN" 
    "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>com.yourcompany.yourscript</string>
  <key>ProgramArguments</key>
  <array>
    <string>/bin/bash</string>
    <string>/path/to/your/script.sh</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
</dict>
</plist>
  1. 保存该文件到 ~/Library/LaunchAgents/ 目录下。
  2. 运行命令 launchctl load ~/Library/LaunchAgents/com.yourcompany.yourscript.plist 以启动服务。

代码示例:

使用Launchd启动Bash脚本:

```xml
<!DOCTYPE plist PUBLIC 
    "-//Apple Computer//DTD PropertyList 1.0//EN" 
    "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>com.yourcompany.yourscript</string>
  <key>ProgramArguments</key>
  <array>
    <string>/bin/bash</string>
    <string>/path/to/your/script.sh</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
</dict>
</plist>