Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: webhope 24 Ledna 2010, 15:23:24
-
Můžete mi překontrolovat tu podmínku, zdá se že to funguje, ale i tak nejsem si úplně stopro jistý...
while [[ "$result" != "2" && "$result" != "1" ]]; do # ERR 2 - not mounted; ERR 1 - unmount successed
echo $'\E[1;37m'; umount $nexttarget; result=$?; echo $'\E[1;0m'
done
A chci se ještě zeptat proč se musí dávat za if dvě závorky:
if [[ "$WORK" =~ "TEST" ]]; then ... fi;
Když jsem tam měl jen [ ... ] tak to píše [: postrádám „]“ ... ale nevím proč
-
Jak u while ani u if nemusíš mít dvě ty závorky, ty závorky vlastně nahrazují test
Např. if test $i -ne $j; then ....
je to stejný jako if [ $i -ne $j ]; then ...
a pokud porovnáváš čísla jak máš [ "$result" != "2" && "$result" != "1" ] tak bych použil [ $result -ne 2 && $result -ne 1 ]
EDIT: Aha sem guma, dvojtý závorky jsou jak sem asi zjistil kvůli použití dvou porovnání
-
Dá se místo toho použít
if [foo] && [bar]; then ....
Evidentně jsem asi logický operátory v Bashi nepoužíval ;D, aspoň jsem se něčemu přiučil.