Forums Neueste Beiträge
 

Frage zu Test Kommando

09/11/2007 - 13:49 von Martin Kißner | Report spam
Hallo zusammen,

ich habe eine Verstàndnisfrage zum test Kommando bzw. genauer gesagt zum
expression primary -n.
Wenn eine Variable leer ist (oder nicht definiert) erwarte ich, dass der
Test 'false' liefert.

% s=''
% if (test -n $l); then echo s nicht leer; else echo s leer; fi
s nicht leer

Dieses Verhalten verstehe ich nicht.
Kann das jemand erklà€ren?

Danke im Voraus


Getestet in folgenden Shells

bash --version
GNU bash, version 3.2.17(1)-release (i386-apple-darwin9.0)
Copyright (C) 2005 Free Software Foundation, Inc.

zsh --version
zsh 4.3.4 (i386-apple-darwin9.0)



perl -e '$S=[[73,116,114,115,31,96],[108,109,114,102,99,112],
[29,77,98,111,105,29],[100,93,95,103,97,110]];
for(0..3){for$s(0..5){print(chr($S->[$_]->[$s]+$_+1))}}'
 

Lesen sie die antworten

#1 Dirk Clemens
09/11/2007 - 13:56 | Warnen spam
Martin Kißner schrieb:

% s=''
% if (test -n $l); then echo s nicht leer; else echo s leer; fi


^^^
Schau dir mal den Buchstaben an!
Und dann ist < test -n "$s" > besser,
da sonst word splitting stattfindet und bei leerem 's' der obige Befehl
zu < test -n > reduziert wird.

Dirk


Mail bitte an: lemmi (minus) usenet (at) ftb (minus) net (dot) de

Ähnliche fragen