Hogyan szokás megoldani, hogy egy hosszabb bash szkript egy részét (mondjuk egy változótól függően) átugorjon az értelmező? Próbáltam így:
if [$valami -eq 1]; then
HOSSSZU...
else
MASIKHOSSZU...
fi
de nem jó. Sajnos a pontos hibaüzenet nincs előttem, de a fi-re panaszkodott a gép.
- 1108 megtekintés
Hozzászólások
http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-6.html
6.4 Sample: Conditionals with variables
#!/bin/bash
T1="foo"
T2="bar"
if [ "$T1" = "$T2" ]; then
echo expression evaluated as true
else
echo expression evaluated as false
fi
- A hozzászóláshoz be kell jelentkezni
ugy is lehet ahogy te irtad, csak tegyel spaceeket a [ ] kore, plusz valami-nek szamnak kell lennie.
valami=0
if [ $valami -eq 1 ]; then
- A hozzászóláshoz be kell jelentkezni
Hahó!
ha jól olvastam a bash doksijában, akkor az általad írt
if [$valami -eq 1]; then
HOSSSZU...
else
MASIKHOSSZU...
fi
helyett érdemes kipróbálni a
if [$valami -eq 1]; then
HOSSSZU...;
else
MASIKHOSSZU...;
fi
változatot, azaz az elágazás egyes ágait pontosvesszővel kell lezárni.
G.
============================================
"Share what you know. Learn what you don't."
- A hozzászóláshoz be kell jelentkezni
Ez így nem jó, a helyes válasz már itt elhangzott.
- A hozzászóláshoz be kell jelentkezni
nem. az ujsor kivaltja a pontosvesszot (de az extra ;-vel is mukodik) viszont a space tenyleg kell a [] kore.
- A hozzászóláshoz be kell jelentkezni
Igen, mivel a '[' igazából nem más mint a 'test' parancs.
- A hozzászóláshoz be kell jelentkezni
Ha tényleg azt akarod, hogy az értelmező ugorja át az adott részt, tehát ne értelmezze, akkor azt a részt ki kell szervezni egy külön fileba:
#!/bin/bash FOO=1 BAR=0 [ $FOO == 1 ] && source ./FOO [ $BAR == 1 ] && source ./BAR
Itt a ./FOO tartalma lefut, míg a ./BAR tartalma nem
----
概略情報
http://molnaristvan.eu/
- A hozzászóláshoz be kell jelentkezni
Köszi a segítséget, ez alapján menni fog.
(Asszem a külön fájlba pakolás lesz a legjobb most nekem - az a rész úgyis gyakran módosul.)
- A hozzászóláshoz be kell jelentkezni