YouTube'dan şarkı indirmek için bu komut dosyası değiştirdiniz ama bu gibi çalıştırdığınızda aşağıdaki hatayı alıyorum:Çok fazla argüman hatası
sh youtube2mp3.sh https://www.youtube.com/watch?v=gpOJ6iu8fqQ
Hataları:
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.
Satır numaraları, üç if [ -f $video_title.$ext1 ]
satırına atıfta bulunuyor ... Daha önceki bir sürümde çalıştığı gibi argümanlarımın iyi olduğunu düşündüm ama bu noktada sıkışıp kaldım - birisi bunu düzeltmek için ne yapmam gerektiğini açıklayabilir ?
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
çift alıntı deneyin Test komutundaki değişken isimleri. Örneğin. Eğer [-f "$ video_title. $ ext1"] 'etc – user000001
ise" bash "yerine" sh "ile çalıştırırsınız. Bunu değiştirmeye ve geri rapor etmeye çalışın. aynı zamanda url'nizin etrafına '' '' koyar ve bununla ilgili rapor verir. – mnagel
Bu, temel olarak https://stackoverflow.com/questions/10067266/when-to-wrap-quotes-around-a-shell-variable dosyasının bir kopyasıdır. – tripleee