我正在尝试为 yt-dlp 创建一个 shell 脚本,该脚本将 URL 作为来自命令行的输入,或者如果没有给出输入,则使用内部列表。该脚本在给定输入时有效,但在未给出输入并因此使用内部列表时崩溃。
#!/usr/bin/env bash
URLfromTerminal="$1"
PathToList="--batch-file '${HOME}/bin/ytdlp/Lists/Test.txt'"
[[ -z "$URLfromTerminal" ]] && Download="$PathToList" || Download="$URLfromTerminal"
yt-dlp -ciw \
-S "res:1920" \
--ffmpeg-location "$HOME"/bin/ffmpeg/ffmpeg \
"$Download"
Run Code Online (Sandbox Code Playgroud)
未给出输入并使用内部列表时出现错误消息:
yt-dlp: error: no such option: --batch-file '/Users/UserName/bin/ytdlp/Lists/Test.txt'
Run Code Online (Sandbox Code Playgroud)
当从变量扩展时,为什么 yt-dlp 将文本文件的路径视为选项?
我是 shell 脚本新手,不知道什么是最佳实践,所以任何一般性的改进也是受欢迎的。
我有这个在线:
diskutil mount VOL1 && diskutil mount VOL2 && diskutil mount VOL3
但我不想用内嵌阵列重复命令“diskutil mount”。我试图找到以下风格的解决方案:diskutil mount {VOL1,VOL2,VOL3}
这是如何用 xargs 写的?