In sh verstehen (. Beachten Sie, dass die Fehlermeldung über die Befehlszeile erscheint)Kann nicht Befehl Substitution in Fish Shell
fish: Illegal command name “(echo ls)”
~% (echo ls)
~% echo (echo ls)
ls
~% eval (echo ls)
bin/ Desktop/
fish: Illegal command name “(echo ls)”
exec (echo ls)
^
~% exec (echo ls)
Es scheint, dass nur Kommandosubstitution als Parameter eines Befehls arbeitet, nicht als Befehl selbst? Warum?
Nun, die Hilfe doc sagt
Wenn ein Parameter einen Satz von Klammern enthält, wird der Text durch die Klammer umschlossen wird als eine Liste von Befehlen interpretiert werden.
Aber immer noch, warum?
Da die Fehlermeldung über die Befehlszeile angezeigt wird, und es erscheint dass Sie es dann bearbeitet haben, bevor Sie es erneut senden, es ist verwirrend, da keiner der Befehle, die Sie anzeigen, diesen Fehler erzeugt. Vielleicht sollten Sie nach der Fehlermeldung '(echo ls)' einfügen. –
Entschuldigung, ich vermisse die '()'. Bearbeitet. – weakish