Dlaczego "echo "qwerty" | /bin/sh" zwraca "/bin/sh: 1: qwerty: nie znaleziono"?

0

Pytanie

Wiem, że echo polecenie wyświetla wiersz tekstu, przekazane jako argument.

Tak więc, składnia echo "qwerty" zostanie wyświetlone:

qwerty

ale gdy łączę poprzedni składnia z | /bin/sh zostanie wyświetlony następujący komunikat:

/bin/sh: 1: qwerty: nie znaleziono

Chciałbym wiedzieć, dlaczego użycie operatora bitowego LUB (Tj. | ) w ten sposób, w końcu okazuje się, że taki wynik.

echo sh shell
2021-11-24 05:27:13
1

Najlepsza odpowiedź

1

| nie jest побитовым przez operatora LUB.[1] To operator rur. To prowadzi do tego, że stdout poprzedniej programu jest przekazywana w stdin kolejnego programu.

$ printf 'abc def\nghi\n' | wc
      2       3       12

To pokazuje wc ("liczba słów") odczyt danych wyjściowych printf i wydrukowałem fakt, że otrzymał linie 2, 3 słowa i 12 bajtów.

W twoim przypadku, sh odczytuje jego stdin dla zespołów (z powodu braku jak -c opcja i argument nazwy pliku), i w ten sposób przetwarza qwerty jako polecenie do wykonania.


  1. To może być bitowe LUB w арифметическом kontekście przy użyciu bash i, być może, inne pociski z "rodziny sh". Tutaj to nie jest tak, nawet jeśli używane bash.
2021-11-24 05:43:21

W innych językach

Ta strona jest w innych językach

Русский
..................................................................................................................
Italiano
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................