Mogę używać tego cat
jako bardzo prostego edytora tekstu cat > foo.txt
.
Jeśli wtedy wpiszę:
bar
baz
a następnie naciśnij ctrl+ D, teraz wygląda to tak:
$ cat > foo.txt
bar
baz^D
z kursorem na ^
. Jeśli naciśniemy go jeszcze raz, plik zostanie zapisany. Jeśli jednak cokolwiek nacisnę (okej, może nic, ale przede wszystkim cokolwiek), po prostu kontynuuję edycję pliku.
Czy to jest normalne zachowanie?
źródło
\n
ale możesz po prostu nacisnąć^D
dwa razy pod rząd i spowodować warunek EOF bez generowania końcowego znaku nowej linii (jak naciśnięcie Enter przed^D
wykonaniem).read()
powrotu0
, wskazując EOF.Tak, to jest normalne zachowanie. Pojedynczy Control-D zwykle wybucha tylko wtedy, gdy jest to początek linii. To kończy się z jednym Control-D:
źródło