Nie chcę pisać pliku ręcznie, więc stworzyłem skrypt powłoki. Czy istnieje sposób automatycznego zapisu i zapisania pliku bez konieczności naciskania klawiszy przez użytkownika?
sudo nano blah
#write stuff to file
#save file
#continue
^ To będzie w pliku * .sh
Czy istnieje inny sposób na utworzenie prostego pliku tekstowego w skrypcie?
$echo "Some text" > afile.txt
?Odpowiedzi:
W przypadku bardziej złożonych sekwencji poleceń należy rozważyć użycie
cat
polecenia z niniejszym dokumentem . Podstawowy format toIstnieją dwa subtelnie różne zachowania w zależności od tego, czy etykieta END_TEXT jest cytowana czy nie:
niecytowana etykieta : zawartość jest zapisywana po zwykłych rozszerzeniach powłoki
cytowana etykieta : zawartość tego dokumentu jest traktowana dosłownie, bez zwykłych rozszerzeń powłoki
Rozważmy na przykład następujący skrypt
Wyniki są
i
Jeśli wypisujesz polecenia powłoki ze skryptu, prawdopodobnie potrzebujesz cytowanego formularza.
źródło
END_TEXT
i po prostu użyćCTRL-D
do sygnalizowania końca wejścia. Zobacz na przykład Jak zasygnalizować koniec wejścia standardowegoAby to zrobić, nie trzeba się martwić edytorem.
Możesz dołączyć coś do pliku za pomocą prostego polecenia echa. Na przykład
Do pliku doda „Hello world”
txt
. jeśli plik nie istnieje, zostanie utworzony.Lub jeśli plik może już istnieć i chcesz go zastąpić
W pierwszym wierszu: i
Dla kolejnych linii.
W najprostszym przypadku
.sh
skrypt może po prostu zawierać zestaw poleceń echa.źródło