循环功能取决于模式

循环功能取决于模式

我有文字

www.page.com
www.page1.com
www.page2.com

我需要一个函数来运行特定文本的特定脚本。当 text = www.page.com 时运行脚本 1,当 page2 时运行脚本 2,当 page3 时运行脚本 3,该脚本是指同一文件中的代码段。

如果文本 = www.page.com 则运行

page(){
while true; do
echo "page"
done
}

如果文本 = www.page2.com 则运行

page2(){
while true; do
echo "page2"
done
}

如果文本 = www.page3.com 则运行

page3(){
while true; do
echo "page3"
done
}

所有代码应该位于同一个脚本文件中

文件:update_photo_list 文件

https://google.com/some/url/      >/path/to/save/

这就是我的剧本

dl_url(){
while true; do

    while IFS='>' read -r website_url gallery_dir; do

            echo "Downloading $website_url" 
            echo "To $gallery_dir"; sleep 1
            mkdir -p ./update_photo_temp/
            wget --quiet $website_url -P ./update_photo_temp/

            ## If $website_url = to function then run function
            for i in $website_url; do
                echo $i | awk -F '/.' '{print $2}' | xargs
            done

    done < ./update_photo_list

done
}

google.com(){
while true; do
    echo "blah blah blah"
done
}

它只打印 url 主机名而不启动正确的功能,这应该启动另一个功能取决于 URL,如 google.com 启动 google.com 功能

答案1

尝试使用for循环:

page(){
while true; do
echo "page"
done
}

page2(){
while true; do
echo "page2"
done
}

page3(){
while true; do
echo "page3"
done
}


for i in `cat /path/to/url.txt`
do
        echo $i | awk -F '.' '{print $2}' | xargs
done

相关内容