Portál AbcLinuxu, 20. července 2025 10:18


Dotaz: Bash, přesměrování a roura

3.9.2005 09:06 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Bash, přesměrování a roura
Přečteno: 428×
Odpovědět | Admin
Při postupném upravování příkazu jsem se dostal k následujícímu zmetku a překvapilo mě, že to neskončilo s nějakou chybou. Jaktože bashi nevadí, že přesměrovává vstup žádnému příkazu?
< /tmp/patch |  patch -p1 --dry-run 
Weblate - překládání přes web | Gammu SMSD - posílání SMS | Blog
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

3.9.2005 09:46 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: Bash, přesměrování a roura
Odpovědět | | Sbalit | Link | Blokovat | Admin
Přesměrování lze spouštět jen tak, tj. je samo o sobě příkaz. Tady to zrovna k ničemu není, ale viz např.:
#!/bin/bash
exec 3<>/dev/tcp/localhost/80
cat >&3 <<EOF
GET /bleble.html HTTP/1.0

EOF
exec 3<> -
echo
3.9.2005 11:24 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Rozbalit Rozbalit vše Re: Bash, přesměrování a roura
S tím execem to znám, ale nějak mě překvapilo, že to jde samostatně a vůbec v tom nevidím nějaký význam :-)
3.9.2005 11:34 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: Bash, přesměrování a roura
Hledáním jazyka, ve kterém správná syntaxe implikuje správnou sémantiku, se AFAIK zabývali filosofové tak před dvěma sty let, ale došlo se k tomu, že takový [netrivální] není. I shell holt umožňuje zapsat spoustu věcí, které jsou syntakticky správně, ale nedávají smysl. I když
>soubor
je nejjednodušší způsob, jak vytvořit prázdný soubor.
3.9.2005 11:32 Martin Viteznik | skóre: 19 | blog: Drahtenzentrum
Rozbalit Rozbalit vše Re: Bash, přesměrování a roura
a na co je tohle dobrý? :-?
A HANGFELVÉTELT A TÖRVÉNY VÉDI !!!
3.9.2005 11:40 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: Bash, přesměrování a roura
Na tohle:
#!/bin/bash
exec 3<>/dev/tcp/80.95.102.12/80
cat >&3 <<EOF
GET /forum/show/100138 HTTP/1.1
Host: www.abclinuxu.cz
Connection: close

EOF
grep 'tohl[e]' <&3
exec 3<> -
(spusť, a uvidíš).
3.9.2005 11:54 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Rozbalit Rozbalit vše Re: Bash, přesměrování a roura
No uvidím tak tohle :-)
/tmp/test.sh: line 2: /dev/tcp/80.95.102.12/80: No such file or directory
/tmp/test.sh: line 3: 3: Bad file descriptor
/tmp/test.sh: line 9: 3: Bad file descriptor
3.9.2005 11:57 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: Bash, přesměrování a roura
Tvůj shell zřejmě není bash, cizinče ;-)
3.9.2005 11:59 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Rozbalit Rozbalit vše Re: Bash, přesměrování a roura
Špatný odhad, je vidět, že i Yeti se občas plete ;-). Navíc první řádka toho skriptu chce bash, takže kdybych ho neměl, tak se ani nespustí.
3.9.2005 12:04 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: Bash, přesměrování a roura
To předpokládá chmod po stažení. Asi je to otázka vkusu, ale takovýmto věcem nenastavuji +x, ale spíš je spouštím

interpret skript
3.9.2005 11:58 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Rozbalit Rozbalit vše Re: Bash, přesměrování a roura
No dobře, nebudu to tady ještě víc zamotávat :-). Vysvětlení pro ty co nevědí:
/usr/share/doc/bash/README.Debian.gz:
9. Why is bash configured with --disable-net-redirections?

    It can produce completely unexpected results. This kind of
    feature should not be part of a shell but a special. tool. And
    that tool has existed for years already, it's called netcat.
3.9.2005 11:59 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: Bash, přesměrování a roura
Sakra, předběhls mě :-/ Chtěl jsem doplnit ,nebo jsi zakázal net-redirections při kompilaci`.
3.9.2005 12:07 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: Bash, přesměrování a roura
Ale zsh má předpokládám built-in FTP klienta i na Debianu? Nebo ho z něj taky zrušili všechno, co umí i nějaký jiný program?
3.9.2005 12:20 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Rozbalit Rozbalit vše Re: Bash, přesměrování a roura
zsh nemám nainstalovaný, hlavní důvod pro odstranění tohohle bylo to, že když někdo bude mít skutečné zařízení /dev/tcp, tak se do něj přes bash nedostane ;-). Viz bugreport nějakého ubožáka, který do toho chtěl přidat resolvování jména služeb a za odměnu mu to zakázali úplně…

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.