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.