Verwenden von /usr/bin/env zum Ändern des Verzeichnisses

Verwenden von /usr/bin/env zum Ändern des Verzeichnisses

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/envist die Verwendung eine seltsame Art, Befehle zu schreiben. Ich frage mich, warum meine zweite Zeile nicht funktioniert hat (während einige funktioniert haben, wie mkdiroder ls).

Der Grund, warum ich es nicht loswerden kann, /usr/bin/envist, 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/directoryda 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. envEs 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 envProzess kann das Arbeitsverzeichnis des aufrufenden Prozesses nicht auf herkömmliche Weise ändern.

verwandte Informationen