Wir haben env (1) , um die Umgebung des Befehls zu ändern, den wir ausführen möchten (zum Beispiel env MANPAGER=more man dtrace). Gibt es etwas Ähnliches, nur um das Verzeichnis zu ändern, in dem der Befehl gestartet werden soll?
Im Idealfall möchte ich, dass es so aussieht:
theMagicCommand /new/cwd myProgram
Auf diese Weise könnte es mit anderen env (1) -ähnlichen Befehlen "verkettet" werden, z.
daemon -p /tmp/pid env VAR=value theMagicCommand /new/cwd myProgram
Bisher kann ich mir folgende Lösung vorstellen, die leider nicht das gleiche Interface wie env (1) hat:
cd /new/cwd && myProgram
Außerdem kann ich einfach ein einfaches Shell-Skript wie das folgende erstellen:
#! /bin/sh -
cd "${1:?Missing the new working directory}" || exit 1
shift
exec "${@:?Missing the command to run}"
aber ich suche etwas, das es schon gibt (zumindest unter macOS und FreeBSD).
myProgramist nicht unbedingt eine Desktop-Anwendung (in diesem Fall könnte ich einfach den Pfadschlüssel in einer .desktop-Datei verwenden ).
env. Schau mal env. Vergleichen Sie es mit rtprio, idprio, numactl, jexec, chrt, und in der Tat die Befehle in den Toolsets in den Antworten erwähnt. Es gibt ein Muster und es ist Kettenladen.
(cd the/cwd; cmd)?
(cd the/cwd; cmd)zu env (1) übergehen , ohne es mit sh (1) zu umschließen .
cd /new/cwd && env VAR=value myProgramnicht Ihren Kriterien?