Erstellen einer Datei mit Inhalten in Shell-Skripten

20

Ich bin ein bisschen neu in Shell Scripting und möchte eine neue Datei innerhalb des Skripts erstellen und Inhalte hinzufügen und dann schließen. Die Argumente sollten nicht vom Benutzer übernommen werden. Alles aus dem Pfad und Inhalt ist vordefiniert. Wie kann ich es tun?

Gowtham Gopalakrishnan
quelle

Antworten:

24

Verwenden Sie einfach die Ausgabeumleitung. Z.B

#!/bin/bash

echo "some file content" > /path/to/outputfile

Das >wird alles stdinvon dem stdoutder hier echoin die Datei schreiben outputfile.

Alternativ könnten Sie auch teeeine Pipe verwenden. Z.B

echo "some file content" | tee outputfile

Beachten Sie, dass eines der Beispiele ein vorhandenes überschreibt outputfile.

Wenn Sie an eine aktuell vorhandene Datei anhängen müssen , verwenden Sie >>anstelle von >oder tee -a.

Wenn Sie in dieser Zeile keine Benutzereingaben akzeptieren, kann hier keine Benutzereingabe das Verhalten ändern.

gertvdijk
quelle
Informationen zu
BelovedFool
18

Ich denke, es ist überlegen, ein Dokument hier zu verwenden, um eine neue Datei in einem Skript zu erstellen. Es sieht sauberer aus, was meiner Meinung nach die Lesbarkeit fördert.

Beispielsweise:

cat > filename <<- "EOF"
file contents
more contents
EOF

Die "-"in <<-ist optional, für Tabbed Einzüge ermöglicht , die werden abgestreift , wenn die Datei erstellt wird. Die Anführungszeichen in der "EOF"Umrandung verhindern, dass das Dokument "hier" Ersetzungen vornimmt.

Aaron Hall
quelle