Mailinglist Archive: opensuse-de (871 mails)

< Previous Next >
Re: Bash-Code: Bitte um Verständnishilfe
Hallo,

Am Fri, 10 Jun 2011, Bernd Nachtigall schrieb:
(...)
Bei so etwas hilft immer ein "man test", denn test heißt das Programm,
welches zwischen "[" und "]" ausgeführt wird.
(...)

jepp, ich hatte da wohl schon zu lange drauf geguckt §-| ... und als dann
ein 'man if' nix ergab ... Aber jetzt ist es klar, zwischen den [] läuft
'test'.

Deswegen empfehle und verwende ich immer test explizit. Also:

if test "$RV" -eq 0 -a -n "$FILE"; then

Verwendet wird dabei normalerweise das shell-builtin "test",
dokumentiert per 'help test' (man bashbuiltins):

-z STRING True if string is empty.

-n STRING
STRING True if string is not empty

EXPR1 -a EXPR2 True if both expr1 AND expr2 are true.

arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne,
-lt, -le, -gt, or -ge.

Arithmetic binary operators return true if ARG1 is equal, not-equal,
less-than, less-than-or-equal, greater-than, or greater-than-or-equal
than ARG2

Hilft auch dabei nicht "von hinten durch die Brust ins Auge" wie:

if [ `grep bla /blubb | wc -l` -gt 0 ] ; then

was man besser per

if grep -q bla /blubb; then

erledigen sollte (ggfs. >/dev/null anhängen statt '-q' wenn's portabel
sein soll).

HTH,
-dnh

--
281: Personal Firewall
Warum installieren Sie sich ein Programm, mit dessen Ausgaben
Sie dann nichts anzufangen wissen? (T-Online-Team)
--
Um die Liste abzubestellen, schicken Sie eine Mail an:
opensuse-de+unsubscribe@xxxxxxxxxxxx
Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken
Sie eine Mail an: opensuse-de+help@xxxxxxxxxxxx

< Previous Next >