Ich möchte die Datei nicht manuell schreiben, deshalb habe ich ein Shell-Skript erstellt. Gibt es eine Möglichkeit, die Datei automatisch zu schreiben und zu speichern, ohne dass der Benutzer die Tasten drücken muss?
sudo nano blah
#write stuff to file
#save file
#continue
^ Dies befindet sich in einer * .sh-Datei
Oder gibt es eine andere Möglichkeit, eine einfache Textdatei in einem Skript zu erstellen?
$echo "Some text" > afile.txt
?Antworten:
Bei komplexeren
cat
Befehlssequenzen sollten Sie den Befehl mit einem Dokument hier verwenden . Das Grundformat istEs gibt zwei subtil unterschiedliche Verhaltensweisen, je nachdem, ob das END_TEXT-Label in Anführungszeichen oder nicht in Anführungszeichen gesetzt ist:
nicht zitiertes Label : Der Inhalt wird nach den üblichen Shell-Erweiterungen geschrieben
Zitiertes Etikett : Der Inhalt des hier gezeigten Dokuments wird ohne die üblichen Shell-Erweiterungen wörtlich behandelt
Betrachten Sie beispielsweise das folgende Skript
Die Ergebnisse sind
und
Wenn Sie Shell-Befehle aus Ihrem Skript ausgeben, möchten Sie wahrscheinlich das zitierte Formular.
quelle
END_TEXT
und einfach zu verwendenCTRL-D
, um das Ende der Eingabe zu signalisieren. Siehe zum Beispiel, wie man das Ende der stdin-EingabeSie müssen sich nicht mit einem Editor herumschlagen, um dies zu tun.
Sie können mit einem einfachen Echo-Befehl etwas an eine Datei anhängen. Zum Beispiel
Hängt "Hallo Welt" an die Datei an
txt
. Wenn die Datei nicht vorhanden ist, wird sie erstellt.Oder wenn die Datei bereits vorhanden ist und Sie sie überschreiben möchten
Für die erste Zeile: und
Für nachfolgende Zeilen.
Im einfachsten Fall kann das
.sh
Skript nur eine Reihe von Echo-Befehlen enthalten.quelle