5
Problem

I want to run a Shortcut from the command line and include Unicode text as a part of the command. I want to do something like: shortcuts run "My Notification Shortcut" "My Text Input"

macOS Notification Dialog

According to the Shortcuts Docs:

Running shortcuts from the command line is no different from running shortcuts in the Shortcuts app—you can pass documents, images, text, and more.

shortcuts -h:
shortcuts run <shortcut-name-or-identifier> [--input-path <input-path> ...] [--output-path <output-path>] [--output-type <output-type>] 

This seems to imply that the text must be included as a file. This works:

shortcuts run "Test" -i "/Users/Dave/My Text.txt"

and I want to do this:

shortcuts run "Test" "My Text Input"

Having to save the text to a file seems like an unnecessary step.

Question:

Is it possible to pass a text object as a command line arg directly to a Shortcut?

0

2 Answers 2

6

Looks like it's possible after all using the bash operator <<<. This shell command works as intended:

shortcuts run "Test Alert" <<< "My Text Input"

Sample Notification with passed text

"man bash"

Here Strings
A variant of here documents, the format is:

 <<<word 

The word is expanded and supplied to the command on its standard input.

Update 1: per @Martin R.'s comment above, the following construction also works.

echo "My Text Input" | shortcuts run "Test Alert"

0

According the the shortcuts man page (man shortcuts) input to be passed must be a file or set of files:

An input file (or set of files) to be processed by the shortcut. Wildcards accepted.

Unfortunately, you cannot pass a text object (a variable, for example) as an argument to the shortcuts command. It has to be a file.

2
  • 1
    Weird (but not overly so) that the man page and the docs don't match. Thanks for taking the time. Commented Feb 16, 2023 at 4:02
  • 1
    Unaccepted answer because it turns out that it is possible. Commented Feb 16, 2023 at 15:07

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.