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

时间:2018-03-02 18:51:29

标签: bash function unix arguments

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获得最佳答案的变体,但我无法让它发挥作用。

1 个答案:

答案 0 :(得分:1)

正确而现代的方式:

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

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