Portál AbcLinuxu, 5. května 2025 03:01
[ -n "$foo" ] && [ -z "$foo" ] && echo "huh?" a [[ -n "$foo" ]] && [[ -z "$foo" ]] && echo "huh?" (V druhém případě si nemusím dávat pozor na uvozovky v podmínce.)Je nějaký rozdíl mezi:
[ "$foo" == "ooo" ] || echo "foo neni ooo" a [ "$foo" = "ooo" ] || echo "foo neni ooo"
Řešení dotazu:
help [
[
je to samé jako test
. test
a [[
se liší.
Pokud to ale řešíte v bashi, tak ten jde nad rámec normy, aby uživatelé mohli používat oba příkazy pokud možno totožně.
Sice je to builtin, ale pořád se chová jako příkaz; oproti tomu [[ ... ]]
je jazyková konstrukce. Viz např.
mike@lion:~> x='a b' mike@lion:~> y='a b' mike@lion:~> if [[ $x = $y ]]; then echo E; else echo D; fi E mike@lion:~> if [ $x = $y ]; then echo E; else echo D; fi bash: [: příliš mnoho argumentů D
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.