Nicht sicher sowieso da ist, das eine gute Codierung in Betracht gezogen werden könnte, aber hier ist zwei Möglichkeiten, prägnant sind (Bitte fügen Sie einen Kommentar in Ihrem Code, was passiert, wenn Sie diese verwenden)
Auf diese Weise initialisiert Ihre Variable "var" und wertet "var1" aus (auch diese Variablennamen nie verwenden, auch in den Beiträgen zu SO) zu sehen Wenn es sich um einen Wert ungleich null/null handelt. Dann hängt entweder wahr oder falsch an.
var="statement is "
(($var1)) && var+=true || var+=false
Der andere Weg ist Ihre Logik zu ändern, var auf „“ (nichts), wenn falsch, und auf „true“, wenn wahr zu haben. Setzen Sie dann eine nicht gesetzte Variable standardmäßig auf "false" und geben Sie das Wahr zurück, das ihr zugewiesen wurde, wenn es gesetzt ist. Man bash, suche nach `: - 'für weitere Informationen.
var="statement is ${var1:-false}"
Nicht direkt, nein. Es gibt einige String-Substitutionen, die sich unterschiedlich verhalten, abhängig davon, ob eine Variable nicht definiert (oder definiert, aber leer ist) oder nicht, aber nichts, was die Zeichenfolge "0" als besonders signifikant behandelt. – tripleee
Für eine wirklich undurchsichtige Lösung können Sie die Tatsache ausnutzen, dass '$ 0' gesetzt wird, aber andere Positionsparameter in einer Funktion ohne Parameter leer sind. – tripleee
Vermeiden Sie die längere Form. Alles, was Ihnen dabei aufkommt, wird auf lange Sicht weniger klar sein und ist es nicht wert. –