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