使用一个命令运行一个充满 .sh 文件的目录

Ben*_*ncc 7 command-line scripts gnome-terminal youtube-dl

我有一个目录,里面有很多 .sh 文件,所有这些文件,在运行时,打开一个终端并开始 youtube-dl 下载。由于有这么多,我希望找到一种方法来同时激活它们,立即打开几个不同的终端,而不是单独执行它们。我对编程还是很陌生,所以我不确定如何做到这一点,以及我是否可以创建一个脚本来运行它们,使用命令等。感谢任何帮助,谢谢。

ter*_*don 10

虽然您确实可以.sh按照Yaron 的建议使用 for 循环运行目录中的所有文件,但这确实是一种过于复杂的方法。如果它们之间的唯一区别是它们将下载的 RL,则不要编写太多脚本!而且绝对没有理由为每个人生成一个终端窗口!

相反,将您的 YouTube 网址写入一个文件,每行一个:

http://youtube.com/foo
http://youtube.com/bar
http://youtube.com/baz
Run Code Online (Sandbox Code Playgroud)

然后,要下载它们,请使用 (file是带有 URL 的文件名):

while read url; do
    youtube-dl "$url"
done < file
Run Code Online (Sandbox Code Playgroud)

这将一个接一个地下载文件中的每个视频。如果你想同时下载它们(如果你有太多不是一个好主意),你可以通过添加&以下命令在后台运行每个下载命令:

while read url; do
    youtube-dl "$url" &
done < file
Run Code Online (Sandbox Code Playgroud)

  • @Bencc 所有这些都最好在单个脚本中完成,而不是在多个脚本中完成。我只是说你让你的生活变得比需要的复杂得多。你总是可以发布一个新问题,给出你的一个脚本的例子,我们可以向你展示如何将它们组合成一个脚本。 (5认同)
  • 更好的是,`youtube-dl` 可以从文件中读取 URL:`youtube-dl -a my-url-list.txt`。或者,您可以将 URL 列表粘贴到 `youtube-dl` 的命令行:`xargs youtube-dl &lt; my-url-list.txt`。 (5认同)