创建几个变量并将它们传递给脚本

时间:2013-01-29 14:31:54

标签: bash variables send

希望你能帮我解决这个问题,我对bash很新,所以我搜索并找到了很多关于我工作的例子,但我有点卡在这里。

我有2个脚本。

script1.sh一个正常工作:下载包含曲目标题,艺术家和网址的YouTube播放列表的RSS订阅源,下载这些项目并将其存储到playlist.txt。

问题是,我有其他youtube播放列表,如果我想使用其他rss供稿页面,我需要手动更改script1.sh中播放列表的网址。

所以我正在编写script2.sh,它将下载包含所有不同播放列表rss feed的url,然后将它们一个接一个地发送到script1.sh。

播放列表网址是这样的:

http://gdata.youtube.com/feeds/api/playlists/ hashtag_playlist &安培;最大结果= 50&安培;字段=项%28title,链路%29&安培; prettyprint =真

到目前为止,我已经在script2.sh上管理了我的5个播放列表的名称和主题标签,如下所示:

  • “playlist1”PLYNrAD9Jn2WDWZFp23G3a2tkOBtdeNAbc6
  • “playlist2”PLYNrAD9Jn2WCf54CoS22kn3pBX1XUFinE

我还设法为每个播放列表创建一个文本文件,并从播放列表的名称命名。 我现在要做的是将一个#标签后面的一个#标签发送到script1.sh,并使其输出每个适当文件中每个播放列表的网址,标题和艺术家。我需要在playlists.txt中创建每一行,一个变量并将它们传递给script1.sh的url,但是我真的不明白该怎么做。

我希望我很清楚。我可以回答你的任何问题,以澄清我错过的东西。

提前谢谢

编辑:我刚刚开始写bash,所以我真的很糟糕,这些对你来说真的很难看。提前抱歉:)

script1.sh

url="http://gdata.youtube.com/feeds/api/playlists/PLYNrAD9Jn2WDmpu3gNVxIVO8bAiOcQkx7?&max-results=50&fields=entry%28title,link%29&prettyprint=true"

name="SlickSlickSound"

将url rss Feed页面下载到utube

wget -O $HOME/Music/"Youtube Playlist"/utube $url 2>&1

将下载页面中的标题提取到temp0中 在xml-twig-tools中使用xml_grep

xml_grep 'title' utube --text_only > temp0

将网址提取到temp2

grep -o 'href=['"'"'"][^"'"'"']*&feature=youtube_gdata' utube  > temp

为了清晰起见,请将网址设置为最低限度:www.example.com

sed "s/href='http\?:\/\///" temp > temp1
sed "s/&feature=youtube_gdata//" temp1 > temp2

将URL和标题临时文件合并到同一文件output.txt

paste temp2 temp0 > output.txt

script2.sh

url="http://www.youtube.com/user/SterylMreep/videos?flow=grid&view=1"

下载包含所有播放列表信息的页面源

wget -O "$HOME/Music/Youtube Playlist"/Playlists/collection $url 2>&1

提取播放列表的名称

grep -o 'data-context-item-title=......................' collection > tmp0

为了清晰起见,将网址设置为最低限度

sed 's/data-context-item-title=//' tmp0 > tmp2
sed 's/" d...*$/"/' tmp2 > tmp3

删除空格和\

sed 's/^[ \t]*//' tmp3 > tmp4
sed 's/\///' tmp4 > tmp5

将播放列表ID提取为tmp

grep -o 'href="/playlist?list=..................................' collection  > tmp

为了清晰起见,将网址设置为最低限度

sed 's/href="\/playlist?list=//' tmp > tmp1

创建包含播放列表和主题标签名称的文件

paste tmp4 tmp1 > playlists.txt

创建包含播放列表名称的文件

cat tmp4 | xargs touch

接下来将playlists.txt中的hashtags传递给script1.sh并获取标题,艺术家和网址

1 个答案:

答案 0 :(得分:1)

while read line
do
  sh script1.sh $line
done < script2.sh