You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Automator的MovieTitle变量传入Shell脚本创建父目录

解决Automator中Shell脚本创建MovieTitle父目录的问题

以下是针对你遇到问题的具体解决步骤:

  • 确认变量传递有效性
    Automator的自定义变量需要正确传递到Shell脚本中:

    1. 在「运行Shell脚本」动作里,设置「传递输入」为「作为参数」。
    2. 将Automator中创建的MovieTitle变量拖入脚本编辑框,脚本会自动引用该变量(通常为$1,如果有其他参数则对应调整位置)。
    3. 可在脚本开头添加echo "$MovieTitle"验证变量是否正确获取,若输出为空则检查变量设置环节。
  • 修正目录创建逻辑
    默认情况下Automator的Shell脚本工作目录是用户Home目录,若要在文件所在目录创建父目录,需先定位到文件路径:

    # 获取目标文件所在目录(假设第一个文件参数为$2)
    target_dir=$(dirname "$2")
    # 切换到目标目录,失败则退出脚本
    cd "$target_dir" || exit 1
    # 创建MovieTitle父目录及4个VOD子目录
    mkdir -p "$MovieTitle"/{Amazon,iTunes,Netflix,Hulu}
    

    用mkdir -p可一次性创建多级目录,避免分步创建的路径问题,同时双引号包裹变量确保空格、特殊字符(如&、*)能被正确解析。

  • 权限与路径排查
    若仍创建失败,可在脚本中添加以下命令排查:

    # 输出当前用户与工作目录
    whoami
    pwd
    # 检查目标路径是否可写入
    test -w "$target_dir" && echo "路径可写入" || echo "无写入权限"
    

    若显示无权限,需调整目标目录的权限设置或切换到有权限的路径操作。

  • 完整示例脚本
    结合文件分类逻辑的完整脚本参考:

    # 获取MovieTitle变量与目标文件路径
    MovieTitle="$1"
    target_dir=$(dirname "$2")
    cd "$target_dir" || exit 1
    
    # 创建父目录及VOD子目录
    mkdir -p "$MovieTitle"/{Amazon,iTunes,Netflix,Hulu}
    
    # 文件分类移动示例
    mv *Amazon* "$MovieTitle/Amazon/" 2>/dev/null
    mv *iTunes* "$MovieTitle/iTunes/" 2>/dev/null
    mv *Netflix* "$MovieTitle/Netflix/" 2>/dev/null
    mv *Hulu* "$MovieTitle/Hulu/" 2>/dev/null
    

    末尾的2>/dev/null用于屏蔽无匹配文件时的错误提示。

内容的提问来源于stack exchange,提问作者Kevin Georgiades

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 09:37:42