OT tokenizacia v bash a [ - dalsia programatorska perverzita

Milan B. milan na bastl.sk
Úterý Květen 6 15:29:39 CEST 2014


On 5/6/2014 1:25 PM, Jan Waclawek wrote:
> Ja tu motivaciu chapem, zjednodusuje sa tym parsing,

To nema nic so zjednodusenym parsovanim,  [  je program,, ktory berie 
vsetko ostatne (aj ] ) ako parametre. Takze medzera je namieste.

# which [
/usr/bin/[


Samotny prikaz if  akurat spusti prikaz (interny alebo binarku) co je za 
nim a podla navratoveho kodu z prikazu sa zariadi dalej. Trebars 
podmienka [ -e nnn ] sa moze napisat aj takto:

# if ls nnn > /dev/null 2>&1 ; then echo "nasiel" ; else echo "nenasiel" 
; fi
nenasiel
# touch nnn
# if ls nnn > /dev/null 2>&1 ; then echo "nasiel" ; else echo "nenasiel" 
; fi
nasiel

Aj then a else su taketo (interne) prikazy, takze preto tam musia byt 
nastrkane bodkociarky, aj ked to vyzera cudne.

Vlastne ta chybova hlaska to presne specifikuje - [smoio.c: command not 
found

Shell skript NIE JE programovaci jazyk, je to skriptovaci nastroj, ktory 
spusta a kombinuje rozne prikazy, spusta ich v priamo alebo v 
subshelloch a zliepa ich pomocou trochy syntaktickeho lepidla. Ked sa na 
shell skripty pozriete takymito ocami, tak su podstatne pochopitelnejsie.

Vy v podstate kritizujete macku za to, ze neznasa vajcia :)

Uz ste narazili na takuto perlicku?
--------------------------------------------------------------------------
read x y z <<EOF
AAA BBB CCC
EOF
echo X=$x  Y=$y  Z=$z

echo "111 222 333" > /tmp/nnn
read x y z < /tmp/nnn
echo X=$x Y=$y Z=$z

read x y z <<< "xxx yyy zzz"
echo X=$x Y=$y Z=$z

echo "XXX YYY ZZZ" | read x y z
echo X=$x Y=$y Z=$z
-----------------------------------------------
Vystup:
-----------------------------------------------
X=AAA Y=BBB Z=CCC
X=111 Y=222 Z=333
X=xxx Y=yyy Z=zzz
X=xxx Y=yyy Z=zzz
-----------------------------------------------

:)

-m-



>   ale naozaj je take
> tazke pre toho, co pisal ten manual, sa vzit do pozicie zaciatocnika,
> resp. naozaj sa ten pisatel manualu nikdy so ziadnym zaciatocnikom
> nestretol?
>
> wek
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list



Další informace o konferenci Hw-list