This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
action:Execute_a_Shell_Script [2019/10/07 04:37] peternlewis [Execute a Shell Script] |
action:Execute_a_Shell_Script [2019/10/07 04:39] peternlewis |
||
---|---|---|---|
Line 11: | Line 11: | ||
If the script fails, the action will fail (v9.0+), potentially aborting the macro. | If the script fails, the action will fail (v9.0+), potentially aborting the macro. | ||
- | If you want to use another language, or use any special kinds of shell-specific syntax, then you should specify the language using the `#!` at the front of the script. | + | The script is executed with the `sh` shell — if you want to use another language, or use any special kinds of shell-specific syntax, then you should specify the language using the `#!` at the front of the script. |
==== Using Keyboard Maestro Variables ==== | ==== Using Keyboard Maestro Variables ==== | ||
Line 186: | Line 186: | ||
that is the script will search for tools in the `/usr/bin` directory, then in the `/bin` directory, then `/usr/sbin` and finally `/sbin`. Only tools installed by the system will be in these directories - any tools you have installed will almost certainly be elsewhere and so not found by default because: | that is the script will search for tools in the `/usr/bin` directory, then in the `/bin` directory, then `/usr/sbin` and finally `/sbin`. Only tools installed by the system will be in these directories - any tools you have installed will almost certainly be elsewhere and so not found by default because: | ||
- | * **shell scripts are executed in non-interactive mode** (see the INVOCATION section of the [bash man page](https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/bash.1.html)), the **only** path preset by default is the system path. | + | * **shell scripts are executed in non-interactive mode** (see the INVOCATION section of the sh man page), the **only** path preset by default is the system path. |
* **Thus, your tools or files may not be automatically accessible.** | * **Thus, your tools or files may not be automatically accessible.** | ||
* The `$PATH` environment variable you may have set in Terminal is **not** used. | * The `$PATH` environment variable you may have set in Terminal is **not** used. |