如何在bash中在循环中传递变量

如何在bash中在循环中传递变量,bash,Bash,我在网上找到了一个脚本(https://calomel.org/youtube_wget.html)这是youtube视频 因此,只需键入/yt.pl youtubeLink,脚本就可以完美地用于单个剪辑。 但我想放大它,并从文本文档(download.txt)中的链接使用它 . 所以我在bash中创建了一个循环。这个循环看起来像这样 ` 唯一的问题是它不起作用。它给我以下错误消息 /auto.sh: line 7: ./yt.pl http://www.youtube.com/watch?v=

我在网上找到了一个脚本(https://calomel.org/youtube_wget.html)这是youtube视频

因此,只需键入
/yt.pl youtubeLink
,脚本就可以完美地用于单个剪辑。 但我想放大它,并从文本文档(download.txt)中的链接使用它 . 所以我在bash中创建了一个循环。这个循环看起来像这样

`

唯一的问题是它不起作用。它给我以下错误消息

/auto.sh: line 7: ./yt.pl http://www.youtube.com/watch?v=KYzUd95h8X4: No such file or directory
如果我只是运行错误消息的这一部分
/yt.plhttp://www.youtube.com/watch?v=KYzUd95h8X4
它工作正常

下面是ssh窗口的完整输出

./auto.sh: line 7: ./yt.pl : No such file or directory
./auto.sh: line 7: ./yt.pl http://www.youtube.com/watch?v=XEAL23g2V6g: No such file or directory
./auto.sh: line 7: ./yt.pl http://www.youtube.com/watch?v=KYzUd95h8X4: No such file or directory
./auto.sh: line 7: ./yt.pl http://www.youtube.com/watch?v=IaADyDhg-CY: No such file or directory
./auto.sh: line 7: ./yt.pl http://www.youtube.com/watch?v=JmY4RCCCll4: No such file or directory
./auto.sh: line 7: ./yt.pl http://www.youtube.com/watch?v=D0p5RKzuJLU: No such file or directory
./auto.sh: line 7: ./yt.pl http://www.youtube.com/watch?v=sY6-PY9wWQ8: No such file or directory
./auto.sh: line 7: ./yt.pl http://www.youtube.com/watch?v=TRwcozVntTE: No such file or directory
./auto.sh: line 7: ./yt.pl http://www.youtube.com/watch?v=ft5hp90FV74&feature=relmfu: No such file or directory
./auto.sh: line 7: ./yt.pl http://www.youtube.com/watch?v=DB1E4M7bmeM: No such file or directory
./auto.sh: line 7: ./yt.pl http://www.youtube.com/watch?v=t6w4yeT6OTg&feature=relmfu: No such file or directory
./auto.sh: line 7: ./yt.pl http://www.youtube.com/watch?v=t-m88UZXn_8&feature=related: No such file or directory
./auto.sh: line 7: ./yt.pl http://www.youtube.com/watch?v=iix8NxDN6mQ&feature=relmfu: No such file or directory
./auto.sh: line 7: ./yt.pl http://www.youtube.com/watch?v=O3DvUKEZP_0&feature=relmfu: No such file or directory
./auto.sh: line 7: ./yt.pl http://www.youtube.com/watch?v=IKVdSNfbilo: No such file or directory
./auto.sh: line 7: ./yt.pl http://www.youtube.com/watch?v=V3kjn1zM7OI&feature=relmfu: No such file or directory
./auto.sh: line 7: ./yt.pl http://www.youtube.com/watch?v=EhJheZepqqY&feature=relmfu: No such file or directory
./auto.sh: line 7: ./yt.pl http://www.youtube.com/watch?v=59Oj_xpxh_g&feature=relmfu: No such file or directory
./auto.sh: line 7: ./yt.pl http://www.youtube.com/watch?v=DLP8XMMEG0A: No such file or directory
./auto.sh: line 7: ./yt.pl http://www.youtube.com/watch?v=pCY5ZRXQ3u0&feature=relmfu: No such file or directory
./auto.sh: line 7: ./yt.pl http://www.youtube.com/watch?v=a8CHv8n6qpI&feature=relmfu: No such file or directory
./auto.sh: line 7: ./yt.pl http://www.youtube.com/watch?v=afJXLpC95lQ&feature=relmfu: No such file or directory
./auto.sh: line 7: ./yt.pl http://www.youtube.com/watch?v=6q4dPeUjmu8&feature=relmfu: No such file or directory
./auto.sh: line 7: ./yt.pl http://www.youtube.com/watch?v=0BY5V56ZW3w&feature=relmfu: No such file or directory
./auto.sh: line 7: ./yt.pl http://www.youtube.com/watch?v=9CO__3nHsg8: No such file or directory
./auto.sh: line 7: ./yt.pl http://www.youtube.com/watch?v=bzgZlV3LzFA&feature=fvst: No such file or directory
./auto.sh: line 7: ./yt.pl http://www.youtube.com/watch?v=FgS1UQvYtcU&feature=fvst: No such file or directory
尝试这样做:

#!/bin/bash

while read link; do
    ./yt.pl "$link" && sleep 3
done < download.txt
#/bin/bash
读链接时;做
./yt.pl“$link”和&sleep 3
完成
您应该解释一下……问题在于
“yt.pl”$link
中的空格和引号,该文件被视为单个(不可归档)文件。修复方法是将
yt.pl
“$link”
分开。使用
read
命令一次读取一行也比使用
sed
重复切片文件要好。
#!/bin/bash

while read link; do
    ./yt.pl "$link" && sleep 3
done < download.txt