Ich möchte nicht tcsh verwenden, aber leider keine Wahl in dieser Situation haben. Also bitte keine "Benutze eine andere Shell" antwortet!Wie überprüft man, ob eine Umgebungsvariable entweder nicht gesetzt oder auf die leere Zeichenfolge gesetzt ist?
Ich versuche gerade zu überprüfen, dass eine Umgebungsvariable gesetzt ist und dass sie auf etwas Nützliches eingestellt ist. Also, was ich tun möchte, ist dies:
if ($?HAPPYVAR && $HAPPYVAR != "") then
... blah...
else if ($?SADVAR && $SADVAR != "") then
... more blah ...
endif
Das Problem ist, dass, wenn $ HAPPYVAR nicht gesetzt ist, wird es auf der zweiten Hälfte des Ausdrucks Fehler aus (weil die Umgebungsvariable Ersatz geschieht früh). Ich konnte verschachtelten ifs verwenden, aber dann würde ich habe Probleme bekommen meine „else“ richtig zu arbeiten (ich muss eine andere env var gesetzt würde zu sagen, ob „... bla ...“ passiert ist oder nicht).
Wer hat eine nette, saubere Lösung dafür?
während auf dem gleiche Konzept arbeitet ich fand, dass mein Skript nicht, wenn Block nicht verarbeitet, es nur sagen, dass HAPPYVAR: undefinierten Variable und endet, wie kann ich es so funktioniert, dass es, wenn Block ausführt? –