it-swarm.com.de

Bash wenn in einer Zeile

Ich würde gerne wissen, wie ich Bedingungen innerhalb eines Bash-Skripts in eine einzelne Zeile schreiben kann.

Wie kann ich das zum Beispiel in eine einzelne Zeile schreiben und dann eine andere wie die nächste einfügen?

if [ -f "/usr/bin/wine" ]; then
    export WINEARCH=win32
fi

Ich frage dies, weil ich in meinem .bashrc einige Aliase und auf mehreren Systemen das gleiche .bashrc (synchronisiert) habe, aber ich brauche nicht alle Aliase auf jedem System. Ich habe die meisten von ihnen in if-Anweisungen eingefügt, und jetzt funktioniert alles wunderbar, aber sie nehmen viel Platz in Anspruch, jeweils 3 Zeilen plus die Leerzeile dazwischen (ich mag es, wenn sie leicht sichtbar sind).

Ich werde diese Technik auch für Umgebungsvariablen verwenden.

12

Sie würden es als solches schreiben:

if [ -f "/usr/bin/wine" ]; then export WINEARCH=win32; fi

Beachten Sie, dass dies auch geschrieben werden könnte (wie von @glennjackman vorgeschlagen):

[ -f "/usr/bin/wine" ] && export WINEARCH=win32
24
dr01

Ich finde auch, dass Sie einfach einen beliebigen Komplex eingeben, wenn Sie sonst den Befehl ausführen, die Eingabetaste drücken und nach dessen Ausführung einfach den Aufwärtspfeil drücken. In der Befehlszeile wird natürlich der zuletzt eingegebene Befehl wiederholt, in diesem Fall wird jedoch alles in einer Zeile abgelegt, wie Sie es benötigen. Es ist ein betrügerischer Weg, aber er ist effektiv.

2
Alan