Siehe http://pubs.opengroup.org/onlinepubs/9699919799/utilities/test.html#tag_20_128_16 für eine Diskussion über die Probleme -a
und -o
kann erhöhen. Im Allgemeinen hängt die Syntaxanalyse des Ausdrucks davon ab, auf was sich Parameter auswirken. Betrachten Sie den folgenden Test:
test "$1" -a "$2"
auf dem Wert von $1
Je könnte dies entweder
# Unspecified behavior
# With three arguments, the first "!", the second argument
# must be a unary primary like -n or -f.
test "!" -a "$2"
oder
test "foo" -a "$2" # Test that "foo" and "$2" are non-zero length strings
Wenn $1
wird !
, test
behandeln wird, dass als die Negation Operator, keine Zeichenfolge, deren Länge überprüft werden soll.
Außerdem ist test
nur für 4 oder weniger Argumente wohldefiniert; -a
und -o
führen normalerweise dazu, dass 5 oder mehr Argumente an test
übergeben werden.