Non voglio usare tcsh, ma sfortunatamente non ho scelta in questa situazione. Quindi per favore non usare le risposte "usa un'altra shell"!Come verificare se una variabile di ambiente non è impostata o impostata sulla stringa vuota?
Attualmente sto cercando di verificare che sia impostata una variabile di ambiente e che sia impostata su qualcosa di utile. Quindi quello che voglio fare è questo:
if ($?HAPPYVAR && $HAPPYVAR != "") then
... blah...
else if ($?SADVAR && $SADVAR != "") then
... more blah ...
endif
Il problema è che se $ HAPPYVAR è impostata, sarà errore fuori sulla seconda metà della espressione (perché l'ambiente sostituzione di variabile accade in anticipo). Potrei usare if if annidati, ma poi avrei problemi a far funzionare correttamente il mio "else" (dovrei impostare un altro env var per dire se "... blah ..." è successo o meno).
Qualcuno ha una soluzione carina e ordinata per fare questo?
mentre si lavora sullo stesso concetto ho scoperto che il mio script non processa se il blocco, semplicemente dice che HAPPYVAR: variabile indefinita e termina, come posso farlo funzionare in modo che venga eseguito se blocco? –