Warum wird der Befehl "Bash-Berichte" in einigen Fällen nicht im Terminal gefunden, in anderen jedoch nicht?

1217
Loovjo

Oft, aber nicht immer, wenn ich das Terminal auf meinem Computer starte und Pipe ( |) in einem Befehl verwende, pbpaste | wcgibt bash als Beispiel aus -bash:  wc: command not found. (Das doppelte Leerzeichen ist kein Tippfehler).

Nach einer Weile fand ich eine Lösung: Ich entfernte den Platz nach der Pipe ( pbpaste |wc) und alles funktionierte normal. Aber als ich die Pipe mit dem Leerzeichen lief, funktionierte alles und Bash fand den Befehl vollkommen gültig, auch wenn ich vor ein paar Minuten genau denselben Befehl eingegeben hatte, konnte der Befehl überhaupt nicht gefallen.

Hier ist ein Screenshot davon:

Bildschirmfoto

Ich habe zwei sehr ähnliche Fragen:

  • Warum behandelt bash diese beiden Zeilen auf unterschiedliche Weise, obwohl es die gleichen gibt? Ich habe keine Ahnung, warum das so ist.
  • Wie könnte ich das beheben?
1
Drücken Sie die Umschalttaste + Leertaste? grawity vor 8 Jahren 0
@Grawity Ich glaube nicht, aber es scheint keinen Unterschied zu geben. Loovjo vor 8 Jahren 0

1 Antwort auf die Frage

6
Kevin Reid

Es gibt einen Hinweis auf das Problem in der Fehlermeldung. Es gibt einen zusätzlichen Platz, der Folgendes anzeigt:

bash: wc: … 

Eher, als:

bash: wc: … 

Ich gehe davon aus, dass Sie einen Mac verwenden. Ich vermute, dass Sie ein Tastaturlayout verwenden, bei dem die Eingabe des |Zeichens die Verwendung der Alt/OptionTaste erfordert . Ich denke, das, was möglicherweise passiert, ist, dass Sie Ihren Finger auf der AltTaste verweilen lassen, während Sie das Leerzeichen eingeben.

Alt+ Spacegibt ein sicheres Leerzeichen anstelle eines regulären Leerzeichens ein, das Bashs Parser nicht als Leerzeichen jeglicher Art betrachtet und daher als Teil des Befehlsnamens verwendet wird.

Es funktioniert das zweite Mal, weil Sie vorsichtiger tippen!