Wie weist man einer Shellscript-Variablen eine Ausgabe zu?
Wie ordnen Sie dieses Ergebnis, um eine shell-variable?
Eingang:
echo '1+1' | bc -l
Ausgabe:
2
Versuche:
(hat nicht funktioniert)
#!bin/sh
a=echo '1+1' | bc -l
echo $a
InformationsquelleAutor der Frage GarouDan | 2013-04-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du suchst die shell-Funktion namens " Kommando-substitution.
Gibt es 2 Formen der cmd substitution
Original, zurück in die Steinzeit, aber völlig tragbar und erhältlich in allen Unix-shells (naja fast alle).
Umschließen Ihren Wert generieren von Befehlen innerhalb des back-ticks Zeichen, d.h.
Moderne, weniger klobig aussehende, leicht nestbare cmd-substitution geliefert mit
$( cmd )
d.h.Ihrem "she-bang" - Zeile sagt,
#!/bin/sh
so dass, wenn Sie auf einem echten Unix-Plattform, dann ist es wahrscheinlich, dass dein/bin/sh
ist der original-Bourne-shell, und erfordert, dass Sie verwenden Sie option 1 oben.Wenn Sie versuchen option 2), während immer noch
#!/bin/sh
und es funktioniert, dann haben Sie moderne shell. Versuchen Sieecho ${.sh.version}
oder/bin/sh -c --version
und sehen, wenn Sie keine nützlichen Informationen. Wenn Sie eine Versionsnummer, dann werden Sie wollen, um erfahren Sie mehr über die zusätzlichen Funktionen, die neuere Schalen enthalten.Apropos neuer features, die, wenn Sie auch wirklich benutzen bash, zsh, ksh93+, dann Sie können schreiben Sie Ihre Beispielcode, wie
Sind oder wenn Sie mehr mathematische Operationen, die würden alle bleiben innerhalb des Rahmens, können Sie mit shell-Funktion Arithmetik wie:
In jedem Fall können Sie vermeiden, zusätzliche Prozess der Schöpfung, aber Sie können nicht tun Fließkomma-Arithmetik in der shell (während Sie mit
bc
).InformationsquelleAutor der Antwort shellter