使用参数[duplicate]创建bash函数时出现语法错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用参数[duplicate]创建bash函数时出现语法错误相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

function y-dl ($URL) {
cd ~/Music/
youtube-dl -f bestaudio --prefer-ffmpeg --extract-audio --audio-format mp3 $URL > /dev/null 2>&1
}

我正在尝试为我的bash配置文件编写一个bash函数,在stderr或stdout中没有任何冗长的情况下下载YouTube音频,但是我得到以下编译错误:

-bash: /Users/mu/.bash_profile: line 11: syntax error near unexpected token `$URL'
-bash: /Users/mu/.bash_profile: line 11: `function y-dl ($URL) {'

我正在尝试从Passing parameters to a Bash function得到最佳答案的变体,但我无法让它发挥作用。

答案

正确而现代的方式:

y-dl() {
    cd ~/Music/
    youtube-dl -f bestaudio --prefer-ffmpeg --extract-audio --audio-format mp3 "$1" &>/dev/null
}

函数构造永远不会以签名样式引用参数Ex:func(foo, bar)它的shell

以上是关于使用参数[duplicate]创建bash函数时出现语法错误的主要内容,如果未能解决你的问题,请参考以下文章

更改函数列表时出现意外结果(lambda)[重复]

带有带参数的函数的Bash脚本[重复]

使用bash中所有参数的函数? [复制]

Bash & awk:尝试在 awk 中使用 bash 脚本参数时出现分段错误

自定义bash函数不提供python多个参数[重复]

如何使用 bash 命令参数创建文件名? [复制]