Proč "echo "qwerty" | /bin/sh" návrat "/bin/sh: 1: qwerty: ne nalezené"?

0

Otázka

Vím, že echo příkaz zobrazí řádek textu, který je předán jako argument.

Takže syntaxe echo "qwerty" by se zobrazí:

qwerty

ale když jsem sloučit předchozí syntaxe s | /bin/sh zobrazí se následující zpráva:

/bin/sh: 1: qwerty: ne našel

Chtěl bych vědět, proč pomocí bitové OR operátor (tj. | ) tímto způsobem skončí s takovým výkonem.

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

Nejlepší odpověď

1

| není bitové OR operátor.[1] je To trubka operátora. To způsobí, že stdout z předchozího programu, aby být přesměrován do vstupu stdin následujícího programu.

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

To ukazuje, wc ("word count") čtení výstupu printf a tisk na skutečnost, že obdržel 2 řádky, 3 slova a 12 bajtů.

Ve vašem případě, sh čte jeho stdin pro příkazy (vzhledem k absenci obou -c možnosti a název souboru, argument), a tak léčí qwerty jako příkaz k provedení.


  1. To může být bitové NEBO v aritmetické kontextu při použití bash a případně další mušle v "sh rodina". To není případ tady, i když jste pomocí bash.
2021-11-24 05:43:21

V jiných jazycích

Tato stránka je v jiných jazycích

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