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.

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.


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.