我已经修改了这个脚本从YouTube下载歌曲,但我收到以下错误,当我运行它是这样的:参数太多错误
sh youtube2mp3.sh https://www.youtube.com/watch?v=gpOJ6iu8fqQ
错误:
youtube2mp3.sh: line 31: [: too many arguments
youtube2mp3.sh: line 39: [: too many arguments
youtube2mp3.sh: line 49: [: too many arguments
Sorry but the system encountered a problem.
行号指的是三个if [ -f $video_title.$ext1 ]
线...我想我的观点确定,因为它在以前版本的工作,但我被困在这一点上 - 可能有人解释我需要做什么来纠正它?
address=$1
video_title="$(python youtube-dl $address)"
ext1="flv"
ext2="mp4"
ext3="webm"
if [ -f $video_title.$ext1 ]
then
ffmpeg -i $video_title.$ext1 "$video_title".wav
lame "$video_title".wav "$video_title".mp3
rm $video_title.$ext1 "$video_title".wav
else
if [ -f $video_title.$ext2 ]
then
ffmpeg -i $video_title.$ext2 "$video_title".wav
lame "$video_title".wav "$video_title".mp3
rm $video_title.$ext2 "$video_title".wav
else
if [ -f $video_title.$ext3 ]
then
ffmpeg -i $video_title.$ext3 -acodec libmp3lame -aq 4 "$video_title".mp3
rm $video_title.$ext3
else
echo "Sorry but the system encountered a problem."
fi
fi
fi
尝试双引号测试命令中的变量名称。例如'如果[-f“$ video_title。$ ext1”]'等 – user000001
你用'sh'而不是'bash'运行它。尝试改变它并报告回来。还把''''放在你的网址周围,然后报告。 – mnagel
这基本上是https://stackoverflow.com/questions/10067266/when-to-wrap-quotes-around-a-shell-variable的副本 – tripleee