如何在Mac Automator中向Shell脚本传递两个变量
修复Automator标签工作流的参数传递问题
核心问题
你的脚本参数顺序搞反了,且未给变量加引号处理空格,导致tag命令无法正确识别标签列表和文件路径。
正确工作流设置
收集文件路径
- 添加「Ask for Finder Items」动作,设置为「允许选择:单个项目」,确保只选一个文件。
- 添加「Set Variable」动作,将变量命名为
filePath。
收集标签列表
- 添加「Ask for Text」动作,在提示文本里写“输入逗号分隔的标签(如:Red,Important)”。
- 添加「Set Variable」动作,将变量命名为
tagList。
修正Shell脚本
- 添加「Run Shell Script」动作,在「传递输入」选项中选择「作为自变量」。
- 替换脚本内容为:
解释:/usr/local/bin/tag -a "$2" "$1""$2"对应你输入的标签列表(第二个传入的变量)"$1"对应选中的文件路径(第一个传入的变量)- 双引号是必须的,避免路径或标签包含空格时出错。
额外检查
- 确认
tag工具路径正确:在终端运行which tag,如果输出不是/usr/local/bin/tag,就把脚本里的路径换成终端输出的结果。 - 测试时输入带空格的标签(如
Work Project)和带空格的文件路径,验证是否能正常添加标签。
内容的提问来源于stack exchange,提问作者Ian Piper
相关产品推荐
相关产品推荐

