我想将命令选项传递给功能中的命令。
例如,
我有一个以下脚本,该脚本可与youtube-dl一起使用,并通过vlc媒体播放器流式传输youtube视频URL。
youtube-stream(){
youtube-dl -i -o - "$(cuturlquerystr "$1" | perl -pe "chomp")" | vlc.exe -
}
vlc有许多命令行选项。我想使用youtube-stream
命令中的那些选项。
类似
youtube-stream --pitch-shift="1.5" --rate="1.1" "https://www.youtube.com/watch?v=RVea-2Up8xM"
以上命令的意思是
youtube-dl -i -o - "$(cuturlquerystr "$1" | perl -pe "chomp")" | vlc.exe - --pitch-shift="1.5" --rate="1.1"
我想通过类似以下的方式来实现。
youtube-stream(){
youtube-dl -i -o - "$(cuturlquerystr "$1" | perl -pe "chomp")" | vlc.exe - ${options}
}
我知道getopt解析方法,但是我想通过尽可能少的代码来实现。有想法吗?
答案 0 :(得分:2)
将第一个参数保存在变量中,将其移出参数列表,然后可以使用vlc.exe
将所有其余参数传递给"$@"
。
youtube-stream(){
local url=$1
shift
youtube-dl -i -o - "$(cuturlquerystr "$url" | perl -pe "chomp")" | vlc.exe - "$@"
}