Es ist ziemlich klar, dass mit Shell-Skripten diese Art von Sache auf eine Vielzahl von Wegen (mehr als die meisten Programmiersprachen) wegen all der erreicht werden kann verschiedene variable Expansionsverfahren und Programme wie test
und [
und [[
usw.Bash: Wie man eine Variable aus dem Argument und mit einem Standardwert setzt
im Moment suche ich nur für
DIR=$1 or .
Bedeutung, meine DIR Variable enthalten sollte entweder, was in der ersten arg angegeben ist oder das aktuelle Verzeichnis
Was ist der Unterschied zwischen diesem und DIR=${1-.}
?
Ich finde die Bindestrichsyntax verwirrend, und suchen Sie besser lesbare Syntax.
Warum kann ich das nicht tun?
DIR="$1" || '.'
ich dies zu raten bedeutet „wenn $ 1 leer ist, noch die Zuordnung arbeitet (DIR leer wird), so dass der ungültige Befehl‚‘ wird nie ausgeführt. "
fand ich meine Antwort auf das, was die Doppelpunkt bedeutet: http://wiki.bash-hackers.org/syntax/pe#use_a_default_value –
die Sprache Umarmung. Nicht alle Sprachen haben die gleichen Idiome. 'DIR = $ {1: -.}' Ist eine vollkommen natürliche Art, diese Logik in jeder POSIX-kompatiblen Shell auszudrücken. – chepner
Ich finde den Downvote, um völlig gerechtfertigt zu sein. Ich mag die Art, wie ich diese Frage geschrieben habe, nicht. Ich war damals frustriert. Aber seit ich das gepostet habe, hatte ich nie Probleme, mich an die '$ {VAR: -default}' -Syntax zu erinnern. Ich werde meine Frage bearbeiten, um sie weniger kleinlich zu machen. Ich bin sicher, du warst nicht der Downvoter @chepner, aber du hast absolut recht! –