bash
nie wydaje się narzekać, jeśli uruchomisz polecenie takie jak
$ < some-file-that-exists
Wydaje się, że nic się nie dzieje.
Możesz także użyć
$ <<<"any string"
a nawet proces zastępowania.
Co dokładnie to robi i dlaczego jest dozwolone. Czy może się przydać do czegoś?
<
wyświetli błąd (zsh: parse error near `\n'
), ponieważ nie podano żadnego argumentu.bash
, ale to jest interesująceless
.Odpowiedzi:
<
ustawia przekierowanie dla polecenia, które może wystąpić przed instrukcją przekierowania lub po niej. To znaczydziała również
Ale jeśli nie wydasz polecenia, bash konfiguruje przekierowanie i nie robi nic innego. W przypadku przekierowania wejściowego odpowiada to temu, co widziałeś, nic, jeśli plik istnieje i jest czytelny. Jeśli plik nie istnieje lub nie można go odczytać, bash zasygnalizuje błąd. W przypadku przekierowania danych wyjściowych plik wyjściowy zostanie utworzony, jeśli nie istnieje. Każdy istniejący plik wyjściowy zostanie obcięty, jeśli
>
zostanie użyty; bez obcięcia, jeśli>>
jest używane.źródło
< file wc
Vs.wc < file
?<domyślnie czyta ze standardowego wejścia lub pliku. twoje wyrażenie nic nie robi z danymi wejściowymi, ponieważ nic nie zrobiłeś po przeczytaniu.
jeśli zrobisz na końcu plik wyjściowy <jakiś plik, który istnieje>, zobaczysz, że właśnie przeczytałeś zawartość pierwszego pliku i zapisałeś go do drugiego pliku.
<<< jest tutaj formatem doc, więc czyta z ciągu zamiast z pliku. kot <<< „dowolny ciąg”, aby zobaczyć, co przeczytałeś.
źródło