Portál AbcLinuxu, 10. května 2025 07:31
Řešení dotazu:
wget http://dl.s7.uloz.to/Ps;Hs;fid=6678716;cid=1663151489;rid=944376995;up=0;uid=guest;uip=89.102.245.179;tm=1290726608;ut=f;aff=uloz.to;He;ch=7402da212850a87aaa542d1b5ec15118;cpnb=126;cput=kuzz;cptm=1290642281;;;Pe/6678716/Na%20hran%C4%9B%20temnoty%20CZ%202010.avi?bD&u=0&c=1663151489&De bash: chyba syntaxe poblíž neočekávaného tokenu „;;“
'...'
) nebo dvojité ("..."
).
#!/bin/bash ##/usr/bin/stahni cd ~/Plocha cd ~/Desktop nazev="$1" DOWNLOAD() { rand="$RANDOM `date`" pipe="/tmp/pipe.`echo '$rand' | md5sum | tr -d ' -'`" mkfifo $pipe LANG="en_US.UTF-8" wget -c --limit-rate=50k '$nazev' 2>&1 | while read data;do if [ "`echo $data | grep '^Length:'`" ]; then total_size=`echo $data | grep "^Length:" | sed 's/.*\((.*)\).*/\1/' | tr -d '()'` fi if [ "`echo $data | grep '[0-9]*%' `" ];then percent=`echo $data | grep -o "[0-9]*%" | tr -d '%'` current=`echo $data | grep "[0-9]*%" | sed 's/\([0-9BKMG.]\+\).*/\1/' ` speed=`echo $data | grep "[0-9]*%" | sed 's/.*\(% [0-9BKiMG.]\+\).*/\1/' | tr -d ' %'` remain=`echo $data | grep -o "[0-9A-Za-z]*$" ` echo $percent domena=${nazev#*//} echo "#Stahuji soubor : ${nazev##*/} z ${domena%%/*} \nStaženo $current z $total_size ($percent%)\nRychlost : $speed\nZa : $remain bude soubor stažen." fi done > $pipe & wget_info=`ps ax |grep "wget.*$nazev" |awk '{print $1"|"$2}'` wget_pid=`echo $wget_info|cut -d'|' -f1 ` zenity --progress --auto-close --text="Připojuji se k $nazev\n\n\n" --width="350" --title="Stahuji ..."< $pipe if [ "`ps -A |grep "$wget_pid"`" ];then kill $wget_pid fi rm -f $pipe } DOWNLOAD "$nazev" kill -9 `echo $wget_pid` 2>/dev/nulla on to nezkousne
přes flashgot plugin firefoxu a do něj dam vlastní script a ten umístim do /usr/bin/st... no a ve flashgot dam parametr spuštění [URL] , což funguje na většinu věcí ale na tyto odkazy s & to nejede.Tak v tom případě je problém ve flashgot. Ten by měl URL předat v uvozovkách. Pokud tak neučiní, tak bude URL nekompletní a nic nestáhne. Jako workaround můžeš zkusit třeba [UFILE] a ten si zpracovat sám.
Tak v tom případě je problém ve flashgot. Ten by měl URL předat v uvozovkách. Pokud tak neučiní, tak bude URL nekompletní a nic nestáhne. Jako workaround můžeš zkusit třeba [UFILE] a ten si zpracovat sám.
<ftip>
Jdu zkusit, jestli by pomocí této chyby nešel podstrčit systému nějaký vlastní příkaz.</ftip>
Není tam možnost si parametry předávané skriptu upravit? Například jako je to v Xfce můj_skript.sh --parametr "%u"
.
cat $file |while read url do /usr/bin/stahni "$url" doneTřeba takhle (netestováno, mírně upraveno)
#!/bin/bash ##/usr/bin/stahni cd ~/Plocha cd ~/Desktop DOWNLOAD() { url="$1" rand="$RANDOM `date`" pipe="/tmp/pipe.`echo '$rand' | md5sum | tr -d ' -'`" mkfifo $pipe LANG="en_US.UTF-8" wget -c --limit-rate=50k '$url' 2>&1 | while read data;do if [ "`echo $data | grep '^Length:'`" ]; then total_size=`echo $data | grep "^Length:" | sed 's/.*\((.*)\).*/\1/' | tr -d '()'` fi if [ "`echo $data | grep '[0-9]*%' `" ];then percent=`echo $data | grep -o "[0-9]*%" | tr -d '%'` current=`echo $data | grep "[0-9]*%" | sed 's/\([0-9BKMG.]\+\).*/\1/' ` speed=`echo $data | grep "[0-9]*%" | sed 's/.*\(% [0-9BKiMG.]\+\).*/\1/' | tr -d ' %'` remain=`echo $data | grep -o "[0-9A-Za-z]*$" ` echo $percent domena=${url#*//} echo "#Stahuji soubor : ${url##*/} z ${domena%%/*} \nStaženo $current z $total_size ($percent%)\nRychlost : $speed\nZa : $remain bude soubor stažen." fi done > $pipe & wget_info=`ps ax |grep "wget.*$url" |awk '{print $1"|"$2}'` wget_pid=`echo $wget_info|cut -d'|' -f1 ` zenity --progress --auto-close --text="Připojuji se k $url\n\n\n" --width="350" --title="Stahuji ..."< $pipe if [ "`ps -A |grep "$wget_pid"`" ];then kill $wget_pid fi rm -f $pipe } nazev="$1" if [ "$nazev" = "-f" ] then soubor="$2" # TODO: kontrola, že soubor existuje cat "$soubor" |while radek line do DOWNLOAD "$radek" kill -9 `echo $wget_pid` 2>/dev/null done else DOWNLOAD "$nazev" kill -9 `echo $wget_pid` 2>/dev/null fiScript by pak bylo možno volat buď jen s jedním URL, nebo "-f nazev_souboru". Tedy do flashget by se zadal řetězec: -f [UFILE]
#!/bin/bash ##/usr/bin/stahni cd ~/Plocha cd ~/Desktop DOWNLOAD() { url="$1" rand="$RANDOM `date`" pipe="/tmp/pipe.`echo '$rand' | md5sum | tr -d ' -'`" mkfifo $pipe LANG="en_US.UTF-8" wget -c --limit-rate=50k "$url" 2>&1 | while read data;do if [ `echo "$data" | grep '^Length:'` ]; then total_size=`echo "$data" | grep "^Length:" | sed 's/.*\((.*)\).*/\1/' | tr -d '()'` fi if [ "`echo "$data" | grep '[0-9]*%' `" ];then percent=`echo "$data" | grep -o "[0-9]*%" | tr -d '%'` current=`echo "$data" | grep "[0-9]*%" | sed 's/\([0-9BKMG.]\+\).*/\1/' ` speed=`echo "$data" | grep "[0-9]*%" | sed 's/.*\(% [0-9BKiMG.]\+\).*/\1/' | tr -d ' %'` remain=`echo "$data" | grep -o "[0-9A-Za-z]*$" ` echo $percent domena="${url#*//}" echo "#Stahuji soubor : ${url##*/} z ${domena%%/*} \nStaženo $current z $total_size ($percent%)\nRychlost : $speed\nZa : $remain bude soubor stažen." fi done > $pipe & wget_info=`ps ax |grep "wget.*$url" |awk '{print $1"|"$2}'` wget_pid=`echo $wget_info|cut -d'|' -f1 ` zenity --progress --auto-close --text="Připojuji se k $url\n\n\n" --width="350" --title="Stahuji ..."< $pipe if [ "`ps -A |grep "$wget_pid"`" ];then kill $wget_pid fi rm -f $pipe } nazev="$1" if [ "$nazev" = "-f" ] then soubor="$2" # TODO: kontrola, že soubor existuje cat "$soubor" |while read radek do DOWNLOAD "$radek" kill -9 `echo $wget_pid` 2>/dev/null done else DOWNLOAD "$nazev" kill -9 `echo $wget_pid` 2>/dev/null fi
#!/bin/bash ##/usr/bin/stahni cd ~/Plocha cd ~/Desktop DOWNLOAD() { url="$1" rand="$RANDOM `date`" pipe="/tmp/pipe.`echo '$rand' | md5sum | tr -d ' -'`" mkfifo $pipe LANG="en_US.UTF-8" wget -c --limit-rate=50k "$url" 2>&1 | while read data;do if [ "`echo $data | grep '^Length:'`" ]; then total_size=`echo "$data" | grep "^Length:" | sed 's/.*\((.*)\).*/\1/' | tr -d '()'` fi if [ "`echo "$data" | grep '[0-9]*%' `" ];then percent=`echo "$data" | grep -o "[0-9]*%" | tr -d '%'` current=`echo "$data" | grep "[0-9]*%" | sed 's/\([0-9BKMG.]\+\).*/\1/' ` speed=`echo "$data" | grep "[0-9]*%" | sed 's/.*\(% [0-9BKiMG.]\+\).*/\1/' | tr -d ' %'` remain=`echo "$data" | grep -o "[0-9A-Za-z]*$" ` echo $percent domena="${url#*//}" echo "#Stahuji soubor : ${url##*/} z ${domena%%/*} \nStaženo $current z $total_size ($percent%)\nRychlost : $speed\nZa : $remain bude soubor stažen." fi done > $pipe & wget_info=`ps ax |grep "wget.*$url" |awk '{print $1"|"$2}'` wget_pid=`echo $wget_info|cut -d'|' -f1 ` zenity --progress --auto-close --text="Připojuji se k $url\n\n\n" --width="350" --title="Stahuji ..."< $pipe if [ "`ps -A |grep "$wget_pid"`" ];then kill $wget_pid fi rm -f $pipe } nazev="$1" if [ "$nazev" = "-f" ] then soubor="$2" # TODO: kontrola, že soubor existuje cat "$soubor" |while read radek do DOWNLOAD "$radek" kill -9 `echo $wget_pid` 2>/dev/null done else DOWNLOAD "$nazev" kill -9 `echo $wget_pid` 2>/dev/null fi
[UFILE]
. Celé vlákno je o tom, že nikdo neví, co vlastně chcete, o co se pokoušíte a co vám nefunguje.
ale to nic nemění na tom že nejde stáhnout http://www.uloz.to/6693613/na-hrane-temnoty-cz-dabing-2010-avi . a každej jinej kterej má diakritiku. Zatim se teda řešení nehlo ani o milimetr.Flashgot by v tomhle případě měl předat url, kde budou "nebezpečné" znaky nahrazeny HTML entitami (připadně mít takovou možnost) -> další bug/wish report na autora FlashGot.
předat url, kde budou "nebezpečné" znaky nahrazeny HTML entitamiNe HTML entitami, ale zakódované pomocí URL encoding.
Ten soubor s odkazama tam je , jenže v něm neni ukončená řádka a tak to nefunguje pokud v tom seznamu přidam ukončení řádky pak to jde.Tak si ho do toho souboru přidej:
... soubor="$2" echo >> "$soubor" # TODO: kontrola, že soubor existuje cat "$soubor" |while read radek ...
+ cd /home/marian/Plocha stahni: řádek 3: cd: /home/marian/Plocha: Adresář nebo soubor neexistuje + cd /home/marian/Desktop + nazev=-f + '[' -f = -f ']' + soubor=/home/marian/stahuj.url + cat /home/marian/stahuj.url + read radek + DOWNLOAD 'http://dl.s7.uloz.to/Ps;Hs;fid=6678716;cid=1663151489;rid=944376995;up=0;uid=guest;uip=89.102.245.179;tm=1290726608;ut=f;aff=uloz.to;He;ch=7402da212850a87aaa542d1b5ec15118;cpnb=126;cput=kuzz;cptm=1290642281;;;Pe/6678716/Na%20hran%C4%9B%20temnoty%20CZ%202010.avi?bD&u=0&c=1663151489&De' + url='http://dl.s7.uloz.to/Ps;Hs;fid=6678716;cid=1663151489;rid=944376995;up=0;uid=guest;uip=89.102.245.179;tm=1290726608;ut=f;aff=uloz.to;He;ch=7402da212850a87aaa542d1b5ec15118;cpnb=126;cput=kuzz;cptm=1290642281;;;Pe/6678716/Na%20hran%C4%9B%20temnoty%20CZ%202010.avi?bD&u=0&c=1663151489&De' ++ date + rand='17578 Ne lis 28 22:04:53 CET 2010' ++ echo '$rand' ++ tr -d ' -' ++ md5sum + pipe=/tmp/pipe.686fd43dd4a94cc2b741dd83ccdf6fc2 + mkfifo /tmp/pipe.686fd43dd4a94cc2b741dd83ccdf6fc2 + LANG=en_US.UTF-8 ++ ps ax + wget -c --limit-rate=50k 'http://dl.s7.uloz.to/Ps;Hs;fid=6678716;cid=1663151489;rid=944376995;up=0;uid=guest;uip=89.102.245.179;tm=1290726608;ut=f;aff=uloz.to;He;ch=7402da212850a87aaa542d1b5ec15118;cpnb=126;cput=kuzz;cptm=1290642281;;;Pe/6678716/Na%20hran%C4%9B%20temnoty%20CZ%202010.avi?bD&u=0&c=1663151489&De' ++ awk '{print $1"|"$2}' ++ grep 'wget.*http://dl.s7.uloz.to/Ps;Hs;fid=6678716;cid=1663151489;rid=944376995;up=0;uid=guest;uip=89.102.245.179;tm=1290726608;ut=f;aff=uloz.to;He;ch=7402da212850a87aaa542d1b5ec15118;cpnb=126;cput=kuzz;cptm=1290642281;;;Pe/6678716/Na%20hran%C4%9B%20temnoty%20CZ%202010.avi?bD&u=0&c=1663151489&De' + wget_info='27308|pts/1' ++ cut '-d|' -f1 ++ echo '27308|pts/1' + wget_pid=27308 + zenity --progress --auto-close '--text=Připojuji se k http://dl.s7.uloz.to/Ps;Hs;fid=6678716;cid=1663151489;rid=944376995;up=0;uid=guest;uip=89.102.245.179;tm=1290726608;ut=f;aff=uloz.to;He;ch=7402da212850a87aaa542d1b5ec15118;cpnb=126;cput=kuzz;cptm=1290642281;;;Pe/6678716/Na%20hran%C4%9B%20temnoty%20CZ%202010.avi?bD&u=0&c=1663151489&De\n\n\n' --width=350 '--title=Stahuji ...' + read data ++ grep '^Length:' ++ echo --2010-11-28 22:04:53-- 'http://dl.s7.uloz.to/Ps;Hs;fid=6678716;cid=1663151489;rid=944376995;up=0;uid=guest;uip=89.102.245.179;tm=1290726608;ut=f;aff=uloz.to;He;ch=7402da212850a87aaa542d1b5ec15118;cpnb=126;cput=kuzz;cptm=1290642281;;;Pe/6678716/Na%20hran%C4%9B%20temnoty%20CZ%202010.avi?bD&u=0&c=1663151489&De' + '[' '' ']' ++ echo '--2010-11-28 22:04:53-- http://dl.s7.uloz.to/Ps;Hs;fid=6678716;cid=1663151489;rid=944376995;up=0;uid=guest;uip=89.102.245.179;tm=1290726608;ut=f;aff=uloz.to;He;ch=7402da212850a87aaa542d1b5ec15118;cpnb=126;cput=kuzz;cptm=1290642281;;;Pe/6678716/Na%20hran%C4%9B%20temnoty%20CZ%202010.avi?bD&u=0&c=1663151489&De' ++ grep '[0-9]*%' + '[' '--2010-11-28 22:04:53-- http://dl.s7.uloz.to/Ps;Hs;fid=6678716;cid=1663151489;rid=944376995;up=0;uid=guest;uip=89.102.245.179;tm=1290726608;ut=f;aff=uloz.to;He;ch=7402da212850a87aaa542d1b5ec15118;cpnb=126;cput=kuzz;cptm=1290642281;;;Pe/6678716/Na%20hran%C4%9B%20temnoty%20CZ%202010.avi?bD&u=0&c=1663151489&De' ']' ++ tr -d % ++ echo '--2010-11-28 22:04:53-- http://dl.s7.uloz.to/Ps;Hs;fid=6678716;cid=1663151489;rid=944376995;up=0;uid=guest;uip=89.102.245.179;tm=1290726608;ut=f;aff=uloz.to;He;ch=7402da212850a87aaa542d1b5ec15118;cpnb=126;cput=kuzz;cptm=1290642281;;;Pe/6678716/Na%20hran%C4%9B%20temnoty%20CZ%202010.avi?bD&u=0&c=1663151489&De' ++ grep -o '[0-9]*%' + percent=' 4' ++ sed 's/\([0-9BKMG.]\+\).*/\1/' ++ echo '--2010-11-28 22:04:53-- http://dl.s7.uloz.to/Ps;Hs;fid=6678716;cid=1663151489;rid=944376995;up=0;uid=guest;uip=89.102.245.179;tm=1290726608;ut=f;aff=uloz.to;He;ch=7402da212850a87aaa542d1b5ec15118;cpnb=126;cput=kuzz;cptm=1290642281;;;Pe/6678716/Na%20hran%C4%9B%20temnoty%20CZ%202010.avi?bD&u=0&c=1663151489&De' ++ grep '[0-9]*%' + current=--2010 ++ sed 's/.*\(% [0-9BKiMG.]\+\).*/\1/' ++ tr -d ' %' ++ echo '--2010-11-28 22:04:53-- http://dl.s7.uloz.to/Ps;Hs;fid=6678716;cid=1663151489;rid=944376995;up=0;uid=guest;uip=89.102.245.179;tm=1290726608;ut=f;aff=uloz.to;He;ch=7402da212850a87aaa542d1b5ec15118;cpnb=126;cput=kuzz;cptm=1290642281;;;Pe/6678716/Na%20hran%C4%9B%20temnoty%20CZ%202010.avi?bD&u=0&c=1663151489&De' ++ grep '[0-9]*%' + speed='--2010-11-2822:04:53--http://dl.s7.uloz.to/Ps;Hs;fid=6678716;cid=1663151489;rid=944376995;up=0;uid=guest;uip=89.102.245.179;tm=1290726608;ut=f;aff=uloz.to;He;ch=7402da212850a87aaa542d1b5ec15118;cpnb=126;cput=kuzz;cptm=1290642281;;;Pe/6678716/Na20hranC49B20temnoty20CZ202010.avi?bD&u=0&c=1663151489&De' ++ grep -o '[0-9A-Za-z]*$' ++ echo '--2010-11-28 22:04:53-- http://dl.s7.uloz.to/Ps;Hs;fid=6678716;cid=1663151489;rid=944376995;up=0;uid=guest;uip=89.102.245.179;tm=1290726608;ut=f;aff=uloz.to;He;ch=7402da212850a87aaa542d1b5ec15118;cpnb=126;cput=kuzz;cptm=1290642281;;;Pe/6678716/Na%20hran%C4%9B%20temnoty%20CZ%202010.avi?bD&u=0&c=1663151489&De' + remain=De + echo 4 + domena='dl.s7.uloz.to/Ps;Hs;fid=6678716;cid=1663151489;rid=944376995;up=0;uid=guest;uip=89.102.245.179;tm=1290726608;ut=f;aff=uloz.to;He;ch=7402da212850a87aaa542d1b5ec15118;cpnb=126;cput=kuzz;cptm=1290642281;;;Pe/6678716/Na%20hran%C4%9B%20temnoty%20CZ%202010.avi?bD&u=0&c=1663151489&De' + echo '#Stahuji soubor : Na%20hran%C4%9B%20temnoty%20CZ%202010.avi?bD&u=0&c=1663151489&De z dl.s7.uloz.to \nStaženo --2010 z ( 4%)\nRychlost : --2010-11-2822:04:53--http://dl.s7.uloz.to/Ps;Hs;fid=6678716;cid=1663151489;rid=944376995;up=0;uid=guest;uip=89.102.245.179;tm=1290726608;ut=f;aff=uloz.to;He;ch=7402da212850a87aaa542d1b5ec15118;cpnb=126;cput=kuzz;cptm=1290642281;;;Pe/6678716/Na20hranC49B20temnoty20CZ202010.avi?bD&u=0&c=1663151489&De\nZa : De bude soubor stažen.' + read data ++ echo Resolving dl.s7.uloz.to... 95.168.207.66, 95.168.207.67, 95.168.207.68, ... ++ grep '^Length:' + '[' '' ']' ++ echo 'Resolving dl.s7.uloz.to... 95.168.207.66, 95.168.207.67, 95.168.207.68, ...' ++ grep '[0-9]*%' + '[' '' ']' + read data ++ echo Connecting to 'dl.s7.uloz.to|95.168.207.66|:80...' connected. ++ grep '^Length:' + '[' '' ']' ++ echo 'Connecting to dl.s7.uloz.to|95.168.207.66|:80... connected.' ++ grep '[0-9]*%' + '[' '' ']' + read data ++ echo HTTP request sent, awaiting response... 503 Service Temporarily Unavailable ++ grep '^Length:' + '[' '' ']' ++ echo 'HTTP request sent, awaiting response... 503 Service Temporarily Unavailable' ++ grep '[0-9]*%' + '[' '' ']' + read data ++ echo 2010-11-28 22:04:53 ERROR 503: Service Temporarily Unavailable. ++ grep '^Length:' + '[' '' ']' ++ echo '2010-11-28 22:04:53 ERROR 503: Service Temporarily Unavailable.' ++ grep '[0-9]*%' + '[' '' ']' + read data ++ echo ++ grep '^Length:' + '[' '' ']' ++ echo '' ++ grep '[0-9]*%' + '[' '' ']' + read data (zenity:27313): Gtk-WARNING **: Failed to set text from markup due to error parsing markup: Error on line 1: Entity did not end with a semicolon; most likely you used an ampersand character without intending to start an entity - escape ampersand as & ++ grep 27308 ++ ps -A + '[' '' ']' + rm -f /tmp/pipe.686fd43dd4a94cc2b741dd83ccdf6fc2 ++ echo 27308 + kill -9 27308 + read radekBTW: ještě ti tam chybí něco jako
sed 's/&/&/g'Jo a procenta v tom odkazu jsou, tam mi řekni jde máš problém. To se ti nelíbí procenta v dialogovém okně? Nejlíp když pošleš stejný log jako je výše. Z toho se dá něco vyčíst.
uvoz='"' url=$uvoz"$1"$uvoz$"" xterm -e "wget $url"funguje ale když tam dam
uvoz='"' url=$uvoz"$1"$uvoz$"" xterm -e "wget --limit-rate=50k $url"nebo
uvoz='"' url=$uvoz"$1"$uvoz$"" xterm -e "wget -c $url"tak to nefunguje... Kde je teda chyba ?
wget --limit-rate=50k -c "$url"
xterm -e wget --limit-rate=50k -c "$url"Testovat byste to snad měl vy, ne? Nenapíšete co chcete, co děláte, co vám to dělá, když vám někdo něco poradí, vyzkoušet to taky nechcete…
#!/bin/bash cd ~/Desktop cd ~/Plocha xterm -e wget -c --limit-rate=50k "$1"Takže chyba je někde v implementaci scriptu ale nevim kde. Prozatim použiju tenhle úděs...
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.