Tworzenie pliku z pewną zawartością w skryptach Shell


20

Jestem trochę nowy w Skrypcie Shell i chcę utworzyć nowy plik w skrypcie i chcę dodać zawartość, a następnie ją zamknąć. Nie powinien pobierać argumentów od użytkownika. Wszystko ze ścieżki i treści jest predefiniowane. Jak mogę to zrobić?

Odpowiedzi:


24

Wystarczy użyć przekierowania wyjściowego. Na przykład

#!/bin/bash

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

>Zapisze wszystkie stdinprzewidziane przez stdoutod echodo pliku outputfiletutaj.

Możesz też użyć teedo tego fajki. Na przykład

echo "some file content" | tee outputfile

Pamiętaj, że którykolwiek z przykładów zastąpi istniejący outputfile.

Jeśli chcesz dołączyć do aktualnie istniejącego pliku, użyj >>zamiast >lub tee -a.

Jeśli nie akceptujesz danych wprowadzanych przez użytkownika w tym wierszu, żadne dane wprowadzane przez użytkownika nie mogą tutaj zmienić zachowania.


Dla osób, które chcą mieć wyłącznik linii w swoim pliku, zobacz tutaj: stackoverflow.com/a/9741470/10512595
BelovedFool

18

Myślę, że lepiej jest użyć tutaj dokumentu, aby utworzyć nowy plik w skrypcie. Jest czystszy, co moim zdaniem sprzyja czytelności.

Na przykład:

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

"-"W <<-jest opcjonalne, pozwalające na kartach wcięcia, które zostaną odsłonięte , gdy plik jest tworzony. Cytaty wokół "EOF"uniemożliwiają zastępcy „tutaj doc”.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.