6

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.

行番号は 3if [ -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
4

2 に答える 2

8

常にパラメータ展開を引用してください。の値が$video_title複数の単語に分割されているため、[コマンドが混乱しています。

if [ -f "$video_title.$ext1" ]
then
     ffmpeg -i "$video_title.$ext1" ...
于 2013-07-15T12:39:23.773 に答える