De ce are "ecou "qwerty" | /bin/sh" întoarcere "/bin/sh: 1: qwerty: nu a fost găsit"?

0

Problema

Știu că echo comanda afișează liniile de text care este transmis ca argument.

Deci, sintaxa echo "qwerty" ar afișa:

qwerty

dar când voi merge în sintaxa precedentă cu | /bin/sh este afișat următorul mesaj:

/bin/sh: 1: qwerty: nu a fost găsit

Aș dori să știu de ce, folosind la nivel de bit SAU operator (de exemplu, | ) acest modul se încheie cu o astfel de ieșire.

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

Cel mai bun răspuns

1

| nu este un nivel de bit SAU operator.[1] este o țeavă de operator. Provoacă stdout de programul anterior pentru a fi adus la stdin de următorul program.

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

Acest lucru arată wc ("word count") citirea de ieșire de printf și tipărirea faptul că acesta a primit 2 linii, 3 cuvinte și 12 bytes.

În cazul tău, sh citește sale stdin pentru comenzi (din cauza lipsei de ambele o -c opțiune și un nume de fișier argument), și astfel tratează qwerty ca o comandă pentru a executa.


  1. Acesta poate fi la nivel de bit SAU în aritmetică context atunci când se utilizează bash și, eventual, alte scoici din "sh familie". Nu e cazul aici, chiar dacă ați fost utilizați bash.
2021-11-24 05:43:21

În alte limbi

Această pagină este în alte limbi

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