Wie weist man in einem Shell-Skript einer Variablen den Wert zu, der auf dem Bildschirm angezeigt wird?

Wie weist man in einem Shell-Skript einer Variablen den Wert zu, der auf dem Bildschirm angezeigt wird?

Angenommen, einige Zeichenfolgen (wie 123 oder abc oder test123) würden nach dem letzten Befehl automatisch auf dem Bildschirm erscheinen und ich kann den genauen Wert der Zeichenfolge nicht im Voraus kennen.

Als nächstes möchte ich ein neues Verzeichnis erstellen, das nach dieser Zeichenfolge benannt ist (wie ./123/oder ./abc/oder ./test123/), was bedeutet, dass die Zeichenfolge einer Variablen übergeben werden soll, varsodass das neue Verzeichnis erstellt werden kann mkdir $var.

Antwort1

Sie können Backticks verwenden, um das Ergebnis eines Befehls (in meinem Beispiel ist es uname) in einer Variablen zu speichern, echoes dann auf dem Bildschirm anzuzeigen und es schließlich als Argument für zu verwenden mkdir:

FOO=`uname -n`
echo "$FOO"
mkdir "$FOO" 

Der ausgezeichnete Advanced Bash-Scripting Guide hatein ganzes Kapitel über Befehlssubstitution.

Wie @KalvinLee kommentierte, ist das bevorzugte Format jetzt $(...):

FOO=$(uname -n)

verwandte Informationen