Perché "echo "qwerty" | /bin/sh" ritorno "/bin/sh: 1: qwerty: non trovato"?

0

Domanda

So che echo il comando per visualizzare la riga di testo che viene passato come argomento.

Quindi la sintassi echo "qwerty" visualizza:

qwerty

ma quando faccio il merge di sintassi precedente con | /bin/sh viene visualizzato il seguente messaggio:

/bin/sh: 1: qwerty: non trovato

Vorrei sapere perchè l'utilizzo di operatore or bit a bit (es. | questo modo di finire con una tale uscita.

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

Migliore risposta

1

| non è un operatore or bit a bit.[1] Si tratta di un tubo dell'operatore. Causa stdout del programma precedente per essere reindirizzato al stdin del seguente programma.

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

Questa mostra wc ("conteggio parole") leggendo l'output di printf e di stampare il fatto che essa ha ricevuto 2 righe, 3 parole e 12 byte.

Nel tuo caso, sh legge lo stdin per i comandi (a causa dell'assenza di una -c opzione e un nome di file argomento), e pertanto considera qwerty come l'esecuzione di un comando.


  1. Può essere or bit per bit in aritmetica contesto quando si utilizza bash e, possibilmente, di altre conchiglie "sh famiglia". Che non è il caso qui, anche se si utilizza bash.
2021-11-24 05:43:21

In altre lingue

Questa pagina è in altre lingue

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