如何将多个变量从 AppleScript 传递到 Shell 脚本?
How to pass several variables from AppleScript to Shell script?
我使用 Automator 执行以下操作:
- 要求用户选择文件夹(作为服务操作)
- 要求用户从列表中选择名称 (AppleScript
choose from list ...
)
- 将选择的文件夹和选择的名称传递给shell-script
我知道如何将第 1 步中选择的文件夹传递到第 2 步。但我不明白如何在第 2 步和第 3 步之间传递两个变量(我可以只传递一个)。我在第 2 步尝试 return {answer, input}
。但是 shell-脚本失败并显示错误 -[__NSArrayM fileSystemRepresentation]: unrecognized selector sent to instance 0x600000654b80
。
将参数列表传递给 shell 脚本操作时,例如
return {"/Applications", "com.apple.application-bundle"}
$@
表示由空格连接的扁平列表 -> "/Applications com.apple.application-bundle"
</code>表示第一个参数-><code>"/Applications"
</code>表示第二个参数-><code>"com.apple.application-bundle"
等等...
shell 脚本看起来像
mdfind -onlyin "kMDItemContentType == "
注意:确保在 shell 脚本操作中将参数 作为参数 而不是 传递给标准输入 。
我使用 Automator 执行以下操作:
- 要求用户选择文件夹(作为服务操作)
- 要求用户从列表中选择名称 (AppleScript
choose from list ...
) - 将选择的文件夹和选择的名称传递给shell-script
我知道如何将第 1 步中选择的文件夹传递到第 2 步。但我不明白如何在第 2 步和第 3 步之间传递两个变量(我可以只传递一个)。我在第 2 步尝试 return {answer, input}
。但是 shell-脚本失败并显示错误 -[__NSArrayM fileSystemRepresentation]: unrecognized selector sent to instance 0x600000654b80
。
将参数列表传递给 shell 脚本操作时,例如
return {"/Applications", "com.apple.application-bundle"}
$@
表示由空格连接的扁平列表 ->"/Applications com.apple.application-bundle"
</code>表示第一个参数-><code>"/Applications"
</code>表示第二个参数-><code>"com.apple.application-bundle"
等等...
shell 脚本看起来像
mdfind -onlyin "kMDItemContentType == "
注意:确保在 shell 脚本操作中将参数 作为参数 而不是 传递给标准输入 。