如果我从终端执行任务,它可以工作,但在脚本中却不能......为什么?

问题描述 投票:0回答:1

逐一尝试终端中的每一步。它们有效,但是当我执行时

cat $dj_name | grep -Eo "(https)://[a-zA-Z0-9./?=_%:-]*.mp3*" | sort -u > $dj_name-tracks

在脚本中,脚本失败,导致轨迹文件为空。 这是我正在使用的整个脚本。 谢谢你。

#!/bin/bash
echo "Which DJ set are we downloading from hearthis.at? (Find the name right after https://hearthis.at, like /*dj_name*/ and write is EXACTLY)"
read dj_name
mkdir $dj_name
cd $dj_name
wget https://hearthis.at/$dj_name/podcast/ -O $dj_name
cat $dj_name | grep -Eo "(https)://[a-zA-Z0-9./?=_%:-]*.mp3*" | sort -u > $dj_name-tracks
while read a b; do wget --user-agent=Mozilla/5.0 --save-cookies cookies.txt --post-data 'dir="$dir1"=&file="$file1"' --no-check-certificate "$a" "$b"; done > $dj_name-tracks
echo "If no error messages are displayed, you are probably good to go. Enjoy."
exit
bash grep cat
1个回答
0
投票

现在工作,直接使用 wget -i 从而删除循环...感谢您的提示!

#!/bin/bash echo“我们从hearthis.at下载哪套DJ集?(在https://hearthis.at之后找到名称,例如/dj_name/并准确地写下)” 读取“dj_name” mkdir“$dj_name” cd“$dj_name” wget https://hearthis.at/$dj_name/podcast/ -O "$dj_name" 猫“$dj_name”| grep -Eo "(https)://[a-zA-Z0-9./?=_%:-].mp3" |排序 -u >“$dj_name-tracks” wget --user-agent=Mozilla/5.0 --save-cookies cookies.txt --post-data 'dir="$dir1"=&file="$file1"' --no-check-certificate -i "$dj_name -曲目” echo“如果没有显示错误消息,那么您可能就可以开始了。享受吧。”

© www.soinside.com 2019 - 2024. All rights reserved.