สคริปต์ไม่ทำงานในการดำเนินการต่อ / ปลุกใน Ubuntu


0

ฉันมีสคริปต์ชื่อ 999_thaw_flash.sh ในของฉัน /etc/pm/sleep.d

สคริปต์ดังต่อไปนี้: -

export DISPLAY=:0
#!/bin/bash
case "{$1}" in
    resume|thaw)
lynx --dump link1 >> file1
lynx --dump link2 >> file1
lynx --dump link3 >> file1

grep "magnet:?xt=urn:btih:" file1 > file2

sed -i 's/^......//' file2

awk '/org%3A1337%2Fannounce/{print;print "";next}1' file2 >> file3

lines=$(wc -l < file3)

echo "no. of line $lines"
    if grep silicon+valley+s03e03+720p+hdtv+x265+hevc+ file3;
        then
            lineno=$(grep -n silicon+valley+s03e03+720p+hdtv+x265+hevc+ file3 | cut -d : -f 1)
            echo "current line no :-" $lineno
            link=$(head -n $lineno file3 | tail -1)
            echo $link
                notify-send -i /home/hasan/Desktop/flash/Flash.ico 'Flash is Running' 'Getting silicon valley episode 3'
                transmission-remote -a $link
                echo $link >> flush
                echo "\n\n" >> flush

    fi

    if grep silicon+valley+s03e05+720p+hdtv+x265+hevc+ file3;
        then
            lineno=$(grep -n silicon+valley+s03e05+720p+hdtv+x265+hevc+ file3 | cut -d : -f 1)
            echo "current line no :-" $lineno
            link=$(head -n $lineno file3 | tail -1)
            echo $link
                notify-send -i /home/hasan/Desktop/flash/Flash.ico 'Flash is Running' 'Getting silicon valley episode 5'
                transmission-remote -a $link
                echo $link >> flush
                echo "\n\n" >> flush
    fi

    if grep silicon+valley+s03e06+720p+hdtv+x265+hevc+ file3;
        then
            lineno=$(grep -n silicon+valley+s03e06+720p+hdtv+x265+hevc+ file3 | cut -d : -f 1)
            echo "current line no :-" $lineno
            link=$(head -n $lineno file3 | tail -1)
            echo $link
            notify-send -i /home/hasan/Desktop/flash/Flash.ico 'Flash is Running' 'Getting silicon valley episode 6'
            echo episode 6 of silicon valley online
                transmission-remote -a $link
                echo $link >> flush
                echo "\n\n" >> flush
    fi
    if grep silicon+valley+s03e07+720p+hdtv+x265+hevc+ file3;
        then
            lineno=$(grep -n silicon+valley+s03e07+720p+hdtv+x265+hevc+ file3 | cut -d : -f 1)
            echo "current line no :-" $lineno
            link=$(head -n $lineno file3 | tail -1)
            echo $link
            notify-send -i /home/hasan/Desktop/flash/Flash.ico 'Flash is Running' 'Getting silicon valley episode 7'
            echo episode 7 of silicon valley online
                transmission-remote -a $link
                echo $link >> flush
                echo "\n\n" >> flush
    fi
    if grep silicon+valley+s03e08+720p+hdtv+x265+hevc+ file3;
        then
            lineno=$(grep -n silicon+valley+s03e08+720p+hdtv+x265+hevc+ file3 | cut -d : -f 1)
            echo "current line no :-" $lineno
            link=$(head -n $lineno file3 | tail -1)
            echo $link
            notify-send -i /home/hasan/Desktop/flash/Flash.ico 'Flash is Running' 'Getting silicon valley episode 8'
            echo episode 8 of silicon valley online
                transmission-remote -a $link
                echo $link >> flush
                echo "\n\n" >> flush
    fi
    if grep silicon+valley+s03e09+720p+hdtv+x265+hevc+ file3;
        then
            lineno=$(grep -n silicon+valley+s03e09+720p+hdtv+x265+hevc+ file3 | cut -d : -f 1)
            echo "current line no :-" $lineno
            link=$(head -n $lineno file3 | tail -1)
            echo $
            notify-send -i /home/hasan/Desktop/flash/Flash.ico 'Flash is Running' 'Getting silicon valley episode 9'
            echo episode 9 of silicon valley online
                transmission-remote -a $link
                echo $link >> flush
                echo "\n\n" >> flush
    fi
    if grep silicon+valley+s03e10+720p+hdtv+x265+hevc+ file3;
        then
            lineno=$(grep -n silicon+valley+s03e10+720p+hdtv+x265+hevc+ file3 | cut -d : -f 1)
            echo "current line no :-" $lineno
            link=$(head -n $lineno file3 | tail -1)
            echo $link
            notify-send -i /home/hasan/Desktop/flash/Flash.ico 'Flash is Running' 'Getting silicon valley episode 10'
            echo episode 10 of silicon valley online
                transmission-remote -a $link
                echo $link >> flush
                echo "\n\n" >> flush
    fi
    ;;
esac    

ฉันหวังว่ารูปแบบถูกต้องและตำแหน่งของสคริปต์อยู่ในโฟลเดอร์ที่ถูกต้อง

สคริปต์ไม่ทำงานบนระบบที่ดำเนินการต่อ

ฉันจะไปไหนผิด

ฉันเหนื่อย:

แต่ดูเหมือนไม่มีใครช่วยฉัน

ป.ล. สคริปต์ทำงานได้ดีบนเทอร์มินัล

บันทึก: -

May 22 20:39:16 user-550p5c-550p7c systemd-sleep[19426]: /lib/systemd/system-sleep/flush failed with error code 1.
May 22 20:39:16 user-550p5c-550p7c systemd-sleep[19426]: /lib/systemd/system-sleep/Flash.ico failed with error code 1.
May 22 20:39:16 user-550p5c-550p7c systemd-sleep[19426]: /lib/systemd/system-sleep/file3 failed with error code 1.
May 22 20:39:16 user-550p5c-550p7c systemd-sleep[19424]: Failed to connect to non-global ctrl_ifname: (nil)  error: No such file or directory
May 22 20:39:16 user-550p5c-550p7c systemd-sleep[19424]: Suspending system...
May 22 20:39:23 user-550p5c-550p7c systemd-sleep[19424]: System resumed.
May 22 20:39:23 user-550p5c-550p7c systemd-sleep[19424]: Failed to connect to non-global ctrl_ifname: (nil)  error: No such file or directory
May 22 20:39:23 user-550p5c-550p7c systemd-sleep[19459]: /lib/systemd/system-sleep/wpasupplicant failed with error code 255.
May 22 20:39:23 user-550p5c-550p7c systemd-sleep[19459]: /lib/systemd/system-sleep/Flash.ico failed with error code 1.
May 22 20:39:23 user-550p5c-550p7c systemd-sleep[19459]: /lib/systemd/system-sleep/file3 failed with error code 1.
May 22 20:39:23 user-550p5c-550p7c systemd-sleep[19459]: /lib/systemd/system-sleep/file1 failed with error code 1.
May 22 20:39:23 user-550p5c-550p7c systemd-sleep[19459]: /lib/systemd/system-sleep/file2 failed with error code 1.
May 22 20:39:23 user-550p5c-550p7c systemd-sleep[19459]: /lib/systemd/system-sleep/999_thaw_flash.sh failed with error code 1.
May 22 20:39:23 user-550p5c-550p7c systemd-sleep[19459]: /lib/systemd/system-sleep/flush failed with error code 1.
May 22 20:39:25 user-550p5c-550p7c systemd-sleep[19424]: /dev/sda:
May 22 20:39:25 user-550p5c-550p7c systemd-sleep[19424]:  setting Advanced Power Management level to 0xfe (254)
May 22 20:39:25 user-550p5c-550p7c systemd-sleep[19424]:  APM_level        = 254
May 22 20:39:30 user-550p5c-550p7c systemd-sleep[19424]: Looking up kat.cr
May 22 20:39:30 user-550p5c-550p7c systemd-sleep[19424]: Unable to locate remote host kat.cr.
May 22 20:39:30 user-550p5c-550p7c systemd-sleep[19424]: Alert!: Unable to connect to remote host.
May 22 20:39:30 user-550p5c-550p7c systemd-sleep[19424]: lynx: Can't access startfile https://kat.cr/usearch/the%20flash/
May 22 20:39:30 user-550p5c-550p7c systemd-sleep[19424]: Looking up kat.cr
May 22 20:39:30 user-550p5c-550p7c systemd-sleep[19424]: Unable to locate remote host kat.cr.
May 22 20:39:30 user-550p5c-550p7c systemd-sleep[19424]: Alert!: Unable to connect to remote host.
May 22 20:39:30 user-550p5c-550p7c systemd-sleep[19424]: lynx: Can't access startfile https://kat.cr/usearch/gotham/
May 22 20:39:30 user-550p5c-550p7c systemd-sleep[19424]: Looking up kat.cr
May 22 20:39:30 user-550p5c-550p7c systemd-sleep[19424]: Unable to locate remote host kat.cr.
May 22 20:39:30 user-550p5c-550p7c systemd-sleep[19424]: Alert!: Unable to connect to remote host.
May 22 20:39:30 user-550p5c-550p7c systemd-sleep[19424]: lynx: Can't access startfile https://kat.cr/usearch/silicon%20valley/
May 22 20:39:30 user-550p5c-550p7c systemd-sleep[19424]: no. of line 0

เส้น #!/bin/bash ควรเป็นบรรทัดแรกของสคริปต์ ตรวจสอบว่าช่วย
ott--

ไม่มันไม่สำคัญเลยเพราะใช้งานได้ในเทอร์มินัล
penta

ปล่อยให้มันวิ่งไปด้วย sh -x script เพื่อดูว่าคำสั่งถูกดำเนินการอย่างไรและอย่างไร
ott--

คุณช่วยบอกฉันเพิ่มเติมเกี่ยวกับสคริปต์ sh -x ได้ฉันไม่รู้คำสั่งนั้น
penta

ฉันคิดว่าคุณเพิ่งได้รับเว็บไซต์หลัก HTML ด้วย lynk --dump แต่ฉันชอบที่จะใช้คำสั่งในตัวนั่นคือ wget จะดีที่สุดสำหรับจุดประสงค์ของคุณ นอกจากนี้หากคุณมีสคริปต์คุณต้องเขียน hashbang ในบรรทัดแรกโดยไม่มีช่องว่างถ้าคุณไม่ทำมันก็แค่เป็นความคิดเห็น สิ่งสุดท้ายคืออย่าลืมที่จะมองหาไวยากรณ์ grep เพราะ "slicon + หุบเขา" จะตรงกับ "sliconnnnnnnnnnvalley" หรือ "sliconvalley" n การนับจดหมายไม่สำคัญ ดังนั้นมันจะไม่ตรงกับสตริง "slicon + valley" หากคุณ grep อินพุตเป็นสตริงคุณต้องหลีกเลี่ยง charecters พิเศษ ดังนั้นไวยากรณ์จะมีลักษณะเช่นนี้ "slicon.va"
makgun

คำตอบ:


1
    #!/bin/bash
##Sorry for bad English.
##usage: script_name.sh silicon valley
##This urlencode fonction is from github project but I couldnt remember who is creator.
urlencode() {
    # urlencode <string>

    local length="${#1}"
    for (( i = 0; i < length; i++ )); do
        local c="${1:i:1}"
        case $c in
            [a-zA-Z0-9.~_-]) printf "$c" ;;
            *) printf '%s' "$c" | xxd -p -c1 |
                   while read c; do printf '%%%s' "$c"; done ;;
        esac
    done
}
##In this case it doesnt requirement.
urldecode() {
    # urldecode <string>

    local url_encoded="${1//+/ }"
    printf '%b' "${url_encoded//%/\\x}"
}


a=$(lynx --dump "http://kat.cr/usearch/$(urlencode $@)"|grep "magnet"|sed "s/.*&dn=\([^&]*\).*/\1/g"|sed "/^$/d")
line=$(wc -l < <(echo "$a"))
echo "no. of line $line"
for i in 03 05 06 07 08 09 10;do 
    if [[ $(echo "$a"|grep "silicon.valley.s03e$i.720p.hdtv.x265.hevc") ]];then #Also you can use variable for s03 but this is just example
    echo "$a"|grep -n "silicon.valley.s03e$i.720p.hdtv.x265.hevc" #This will print like "8:silicon+valley+s03e03+720p+hdtv+x265+hevc+135mb+shaanig"
    lineno=$(echo "$a"|grep -n "silicon.valley.s03e$i.720p.hdtv.x265.hevc"|cut -d: -f1)
    link=$(echo "$a"|grep -n "silicon.valley.s03e$i.720p.hdtv.x265.hevc"|cut -d: -f2)
    #notify-send -i $HOME/Desktop/flash/Flash.ico 'Flash is Running' "Getting silicon valley episode ${i}"
    fi
done

ฉันหวังว่าสิ่งนี้จะทำให้คุณมีความคิดในการใช้สคริปต์นี้ อย่า hardcode สำหรับตัวอักษรทุกตัวเพียงแค่ทำในวง นอกจากนี้หากคุณทำคำสั่งซ้ำสองครั้งเพียงแค่เพิ่มฟังก์ชั่นเช่นนี้

function repeating_command() {
echo $@ #this will print all argument
#grep -n "$(echo "$@"|cut -d" " -f2-)" $1 #I assume that first argument is filename Other args are for searched by grep.
echo FileName is $1
echo willSearchByGrep is $(echo "$@"|cut -d" " -f2-)
}
#example usage: repeating_command FileName silicon.valley
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.