【问题标题】:Run Bash script on selected files in Finder在 Finder 中对选定文件运行 Bash 脚本
【发布时间】:2019-05-16 12:51:21
【问题描述】:

我有一个很小的 ​​Bash 脚本,它在输入文件上执行 ffmpeg 和触摸命令。我用它来重新压缩相机中的视频文件。我希望能够在 Finder 中右键单击文件并在选择的文件上运行脚本,最好在执行时显示终端窗口,完成后关闭。

如何在 macOS 上执行此操作?

【问题讨论】:

    标签: bash macos shell finder


    【解决方案1】:

    我想这就是你想要的。我通过按 space 启动 Automator 并开始输入 "Automator",一猜到就按 正确。然后我创建了一个包含以下代码的“快速操作”

    on run {input, parameters}
    
        repeat with theItem in input
            set f to POSIX path of theItem
            tell application "Terminal"
                activate
                tell window 1
                    do script "echo " & f
                end tell
            end tell
        end repeat
    end run
    

    看起来像这样:

    它基本上只是echos 文件名,但您可以将ffmpeg 命令放在那里。

    【讨论】:

    • 您可能是对的,这就是这样做的方法。我希望有一些我没有看到的更简单的东西。
    • 我最终这样做了,尽管使用 AppleScript 调用 Bash 似乎一层太多了。
    • 您同样可以从bash 开始并使用osascript 从Finder 中获取选定项目的列表。请注意,您还可以将& 添加到ffmpeg 命令的末尾,以使它们更快地并行完成。
    【解决方案2】:

    为什么要使用查找器?还是自动机?或者只是为了使用 GUI 而通过循环和箍?

    您在 MacOS 中拥有功能齐全的 bash shell,因此使用下面的单行代码可以节省时间和麻烦。

    假设您需要为文件夹中的所有 *.mpeg 文件运行脚本。

    试试这个:

    ls *mpeg | xargs <your_script_name> 
    

    您将在同一终端窗口中看到执行输出。

    【讨论】:

    • 虽然我同意你在 macOS 中有一个功能齐全的 bash shell,但许多人不想在终端中输入命令并拥有他们的 Mac 多年但从未这样做...
    • 是的,但是这个家伙已经编写了他的 Bash 脚本。为什么不直接从那里运行呢?
    猜你喜欢
    • 2018-07-28
    • 2012-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多