Wie liest man eine Datei in eine Variable in der Shell?
Ich möchte eine Datei lesen und sie in einer Variablen speichern, aber ich muss die Variable behalten und nicht nur die Datei ausdrucken. Wie kann ich das machen? Ich habe dieses Skript geschrieben, aber es ist nicht ganz das, was ich brauchte:
#!/bin/sh
while read LINE
do
echo $LINE
done <$1
echo 11111-----------
echo $LINE
In meinem Skript kann ich den Dateinamen als Parameter angeben, d.h. wenn die Datei z.B. "aaaa" enthält, würde es dies ausgeben:
aaaa
11111-----
Aber das gibt nur die Datei auf dem Bildschirm aus, und ich möchte sie in einer Variablen speichern! Gibt es eine einfache Möglichkeit, dies zu tun?
420
3
In plattformübergreifenden, kleinsten gemeinsamen Nenner
sh
Sie verwenden:In
bash
oderzsh
, um eine ganze Datei in eine Variable zu lesen, ohnecat
aufzurufen:Wenn Sie die gesamte Datei in eine Variable einlesen wollen:
Wenn Sie die Datei Zeile für Zeile lesen wollen:
zwei wichtige Fallstricke
die in den anderen Antworten bisher ignoriert wurden:
Entfernen von Zeilenumbrüchen aus der Befehlserweiterung
Dies ist ein Problem für den:
Lösungen, aber nicht für Lösungen, die auf "Lesen" basieren.
Bei der Befehlsexpansion werden nachstehende Zeilenumbrüche entfernt:
Gibt aus:
Dies bricht die naive Methode des Lesens aus Dateien: