Ich möchte Befehle mit dem Präfix automatisch ausführen/usr/bin/env
$/usr/bin/env composer install (this runs OK)
$/usr/bin/env cd public (failed ---> /usr/bin/env: cd: No such file or directory)
Ich bin neu bei Linux und meiner Meinung nach /usr/bin/env
ist die Verwendung eine seltsame Art, Befehle zu schreiben. Ich frage mich, warum meine zweite Zeile nicht funktioniert hat (während einige funktioniert haben, wie mkdir
oder ls
).
Der Grund, warum ich es nicht loswerden kann, /usr/bin/env
ist, dass ich Capistrano verwende und es das Präfix immer voranstellt. Wenn es eine Möglichkeit gibt, es loszuwerden /usr/bin/env
, ist das sogar noch besser.
Vielen Dank im Voraus.
Antwort1
Sie können es nicht ausführen, env cd /path/to/directory
da in Ihrem System kein Programm aufgerufen wird cd
. Ein Prozess kann sein Arbeitsverzeichnis mit einem Systemaufruf ändern. In einer Shell können Sie einen integrierten Befehl verwenden cd
. env
Es macht keinen Sinn, ihn von dort aus aufzurufen, da dadurch ein neuer Prozess erstellt wird, der unmittelbar nach dem Ändern seines Arbeitsverzeichnisses beendet würde. Der neue env
Prozess kann das Arbeitsverzeichnis des aufrufenden Prozesses nicht auf herkömmliche Weise ändern.