2016-09-21 1 views

Antwort

2

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.