【发布时间】:2019-05-16 12:51:21
【问题描述】:
我有一个很小的 Bash 脚本,它在输入文件上执行 ffmpeg 和触摸命令。我用它来重新压缩相机中的视频文件。我希望能够在 Finder 中右键单击文件并在选择的文件上运行脚本,最好在执行时显示终端窗口,完成后关闭。
如何在 macOS 上执行此操作?
【问题讨论】:
我有一个很小的 Bash 脚本,它在输入文件上执行 ffmpeg 和触摸命令。我用它来重新压缩相机中的视频文件。我希望能够在 Finder 中右键单击文件并在选择的文件上运行脚本,最好在执行时显示终端窗口,完成后关闭。
如何在 macOS 上执行此操作?
【问题讨论】:
我想这就是你想要的。我通过按 ⌘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 命令放在那里。
【讨论】:
bash 开始并使用osascript 从Finder 中获取选定项目的列表。请注意,您还可以将& 添加到ffmpeg 命令的末尾,以使它们更快地并行完成。
为什么要使用查找器?还是自动机?或者只是为了使用 GUI 而通过循环和箍?
您在 MacOS 中拥有功能齐全的 bash shell,因此使用下面的单行代码可以节省时间和麻烦。
假设您需要为文件夹中的所有 *.mpeg 文件运行脚本。
试试这个:
ls *mpeg | xargs <your_script_name>
您将在同一终端窗口中看到执行输出。
【讨论】: