¿por qué "echo "qwerty" | /bin/sh" volver "/bin/sh: 1: qwerty: no encontrado"?

0

Pregunta

Sé que echo comando muestra la línea de texto que se pasa como argumento.

La sintaxis echo "qwerty" mostrará:

qwerty

pero cuando me combinar la sintaxis anterior con | /bin/sh se muestra el siguiente mensaje:

/bin/sh: 1: qwerty: no encontrado

Me gustaría saber por qué usando el operador or bit a bit (es decir, | ), de esta manera acabar con tal de salida.

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

Mejor respuesta

1

| no es un operador or bit a bit.[1] Es un operador de canalización. Esto hace que el stdout del programa anterior para ser conducido a la entrada estándar del programa siguiente.

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

Esta muestra wc ("contar palabras") la lectura de la salida de printf y la impresión el hecho de que recibió 2 líneas, 3 palabras y de 12 bytes.

En su caso, sh lee la entrada estándar de comandos (debido a la ausencia de un -c opción y un argumento de nombre de archivo), y por lo tanto trata qwerty como un comando a ejecutar.


  1. Puede ser a nivel de bit O en el contexto de la aritmética cuando se utiliza bash y, posiblemente, otras conchas en la "sh de la familia". Ese no es el caso aquí, incluso si se utiliza bash.
2021-11-24 05:43:21

En otros idiomas

Esta página está en otros idiomas

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