Bash: Wie man eine Variable aus dem Argument und mit einem Standardwert setzt

Es ist ziemlich klar, dass mit shell scripting diese Art der Sache kann erreicht werden, in der eine riesige Anzahl von Möglichkeiten (mehr als die meisten Programmiersprachen), weil alle anderen Variablen Erweiterung Methoden und Programme wie test und [ und [[ usw.

Momentan bin ich gerade auf der Suche nach

DIR=$1 or .

Bedeutung, mein DIR-variable enthalten sollte, was angegeben ist in der ersten arg, oder das aktuelle Verzeichnis.

Was ist der Unterschied zwischen dieser und der DIR=${1-.}?

Finde ich den Bindestrich syntax verwirrend, und versuchen mehr lesbaren syntax.

Warum kann ich nicht das tun?

DIR="$1" || '.'

Ich vermute, das bedeutet "wenn $1 leer ist, wird die Zuordnung funktioniert immer noch (DIR wird leer), so dass der ungültigen Befehl '.' wird nie ausgeführt."

Kommentar zu dem Problem
Ich fand meine Antwort auf das, was der Doppelpunkt bedeutet: wiki.bash-hackers.org/syntax/pe#use_a_default_value Kommentarautor: Steven Lu
Umarmen die Sprache. Nicht alle Sprachen haben den gleichen Redewendungen. DIR=${1:-.} ist eine ganz Natürliche Art und Weise zu äußern, diese Logik in eine POSIX-kompatible shell. Kommentarautor: chepner
Ich finde die downvote zu werden, völlig gerechtfertigt. Ich weiß nicht, wie ich schrieb diese Frage. Ich war frustriert an der Zeit, denke ich. Aber seitdem ich dieses geschrieben, ich hatte noch nie irgendwelche Schwierigkeiten, die Erinnerung an die ${VAR:-default} - syntax. Ich werde zu Bearbeiten meine Frage, um es weniger kleinlich. Ich bin sicher, Sie waren nicht die downvoter @chepner aber Sie sind absolut Recht! Kommentarautor: Steven Lu
Ich habe nie downvoted (oder wenn ich es Tat, ich Folge eingefahren). Kommentarautor: chepner

InformationsquelleAutor der Frage Steven Lu | 2013-04-18

Schreibe einen Kommentar