Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 什么';youtube dl自动脚本有什么问题?_Bash_Variables_Youtube Dl - Fatal编程技术网

Bash 什么';youtube dl自动脚本有什么问题?

Bash 什么';youtube dl自动脚本有什么问题?,bash,variables,youtube-dl,Bash,Variables,Youtube Dl,首先,我对bash脚本非常陌生,我才刚刚开始学习,显然这个脚本有问题,但我不知道它是什么 我创建了一个bash脚本,用youtube dl自动下载视频: #!/bin/bash echo url: read url export url youtube-dl -f 'bestvideo[height<=360]+worstaudio/worst[height<=360]' $url #/bin/bash 回显url: 读取url 导出url youtube dl-f'bestvi

首先,我对bash脚本非常陌生,我才刚刚开始学习,显然这个脚本有问题,但我不知道它是什么

我创建了一个bash脚本,用youtube dl自动下载视频:

#!/bin/bash

echo url:
read url
export url
youtube-dl -f 'bestvideo[height<=360]+worstaudio/worst[height<=360]' $url
#/bin/bash
回显url:
读取url
导出url

youtube dl-f'bestvideo[height删除-f参数中的单引号,它将起作用

例如

video="youtube-dl -f bestvideo[height<=360]+worstaudio/worst[height<=360]"

video=“youtube dl-f bestvideo[height这里有详细说明:

首先,除非你确切知道如果你不知道会发生什么,否则总是双倍引用你的变量

您不需要导出该变量:您不需要调用任何其他需要使用该变量的程序

如果要重复使用命令,请考虑将其放入函数中:

#!/bin/bash
function video {
    youtube-dl -f 'bestvideo[height<=360]+worstaudio/worst[height<=360]' "$1"
}
read -p "url: " url
video "$url"

旁注:您不需要
导出url
-这里没有添加任何内容。太棒了,它可以完美地与多个参数组合一起工作!…正如我所说,我刚刚开始学习bash脚本,当我搜索帮助时,我了解了我在互联网上看到的内容的10%…但有一个关于您的代码修改的问题…为什么是exactly是需要的“$1”?它表示您为函数提供的第一个参数。在这种情况下,函数就是这样接收
“$url”
的。您也可以将
“$1”
更改为
“$@”
,这样您就可以像
视频url1 url2 url3…
一样调用它了。太好了,现在我明白了!非常感谢您!
#!/bin/bash
function video {
    youtube-dl -f 'bestvideo[height<=360]+worstaudio/worst[height<=360]' "$1"
}
read -p "url: " url
video "$url"
video 'https://www.youtube.com/watch?v=dQw4w9WgXcQ'