Frage Speichere das Ergebnis von find als Variable in einem Shell-Skript [duplizieren]


Diese Frage hat hier bereits eine Antwort:

Ich möchte den Pfad zu einer Datei finden und diese Ausgabe in einer Variablen in einem Shell-Skript speichern. Genauer gesagt, in der Bash-Shell, wenn ich schreibe

GCC_VERSION="find *-gcc"

Dann

echo ${GCC_VERSION}

Drucke

find some-gcc

Wie bekomme ich die Variable? GCC_VERSION nur die Ausgabe von halten find? So speichere ich die Ausgabe des find *-gcc Befehl in die Variable GCC_VERSION damit

echo ${GCC_VERSION}

Drucke

some-gcc

1
2018-04-05 09:02


Ursprung




Antworten:


Zuerst dein find Befehl ist falsch. Wenn Sie nach allen Dateien suchen möchten, die enden -gcc im aktuellen Verzeichnis sollte es sein:

$ find . -type f -name "*-gcc"

Um die Ausgabe von zu speichern find zu GCC_VERSION benutzen process substitution:

$ GCC_VERSION=$(find . -type f -name "*-gcc")

Beachten Sie, dass Sie möglicherweise mehr als eine Datei haben, die endet -gcc Schließen Sie daher einen Variablennamen in ein Anführungszeichen ein:

$ echo "$GCC_VERSION"
./mipsel-linux-gnu-gcc
./aarch64-linux-gnu-gcc
./mips-linux-gnu-gcc
./arm-linux-gnueabihf-gcc

6
2018-04-05 09:13





Sie müssen zurück Ticks verwenden

VARIABLE=`Command`

1
2018-04-05 09:12



Backticks gelten als veraltet zugunsten der $(...) Befehlsersetzungssyntax. - Arronical
@arronical Danke, das wusste ich nicht. - variona
Sehen unix.stackexchange.com/questions/126927/... - RoVo