
Wie kann ich die Ausgabe head -15 textfile.txt
in eine Variable einfügen $X
, um sie in einem if
Befehl wie diesem zu verwenden:
if $X = 'disabled' then
?
Antwort1
x="$(head -15 testfile.txt)"
if [ "$x" = disabled ]
then
echo "We are disabled"
fi
Wenn Sie die Ausgabe eines Befehls in einer Shell-Variable erfassen möchten, verwenden Sie grundsätzlich das folgende Format: variable="$(command args ...)"
. Der variable=
Teil ist eine Zuweisung. Der $(...)
Teil ist eine Befehlsersetzung.
if
Beachten Sie auch, dass die Shell keine Anweisungen in der Form ausführt if $X = 'disabled'
. Die Shell erwartet, dass auf ein Befehl folgt, if
und wertet den Rückgabecode dieses Befehls aus. Im obigen Fall führe ich den Befehl aus, der entweder als oder test
geschrieben werden kann .test ...
[ ... ]
Viele halten es für die beste Vorgehensweise, Variablen in Kleinbuchstaben für Shell-Skripte zu verwenden. Dies liegt daran, dass systemdefinierte Variablen in Großbuchstaben geschrieben sind und Sie nicht versehentlich eine überschreiben möchten. Andererseits wird keine Systemvariable aufgerufen, X
sodass dies hier kein wirkliches Problem darstellt.