루프 기능은 모드에 따라 다릅니다.

루프 기능은 모드에 따라 다릅니다.

문자가 있어요

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

특정 텍스트로 특정 스크립트를 실행하는 기능이 필요합니다. text = www.page.com일 때 스크립트 1이 실행되고, page2일 때 스크립트 2가 실행되고, page3일 때 스크립트 3이 실행됩니다. 이 스크립트는 동일한 파일의 코드 세그먼트를 참조합니다.

text = www.page.com이면 다음을 실행합니다.

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

text = www.page2.com이면 다음을 실행합니다.

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

text = 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 호스트 이름만 인쇄합니다. 이는 google.com이 google.com 기능을 시작하는 것처럼 URL에 따라 다른 기능을 시작해야 합니다.

답변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

관련 정보