csh: wie teste ich richtig auf blank?

4

Ich möchte testen, ob eine Variable in csh vollständig leer ist.

set R='dddd aaa'
if ( '${R}' ) then
    echo not empty

else
    echo 1111
endif

Allerdings klappt es anscheinend nicht.

Es gibt diese Fehlermeldung:

/usr/bin/test: argument expected
if: Expression Syntax.
Anthony Kong
quelle

Antworten:

3

Verwenden

if ( "x$R" == "x" ) then
    echo empty
else
    echo not empty
endif

Die C-Shell hat keinen leeren Operator wie bash. Sie können auch nicht mit 'zitieren, da dies die Variablenerweiterung verhindert.

e40
quelle
Es klappt. Vielen Dank. Aus irgendeinem Grund bleibt die Fehlermeldung "/ usr / bin / test: argument expected" bestehen. Wissen Sie, warum?
Anthony Kong
Sie haben wahrscheinlich irgendwo anders in Ihrem Skript eine überflüssige Klammer (sie ist eine Abkürzung für / usr / bin / test)
RedGrittyBrick
Stellen Sie das Echo oben im Skript ein. Ich bin sicher, es kommt von woanders, weil ich den obigen Code durch csh laufen ließ und mich nicht beschwerte.
e40