Nous avons env (1) pour modifier l'environnement de la commande que nous voulons exécuter (par exemple env MANPAGER=more man dtrace
). Y a-t-il quelque chose de similaire, mais pour modifier le répertoire dans lequel la commande va être lancée?
Idéalement, je voudrais qu'il ressemble à ceci:
theMagicCommand /new/cwd myProgram
De cette façon, il pourrait être "enchaîné" avec d'autres commandes de type env (1), par exemple,
daemon -p /tmp/pid env VAR=value theMagicCommand /new/cwd myProgram
Jusqu'à présent, je peux penser à la solution suivante, qui n'a malheureusement pas la même interface que env (1):
cd /new/cwd && myProgram
De plus, je peux simplement créer un simple script shell comme celui-ci:
#! /bin/sh -
cd "${1:?Missing the new working directory}" || exit 1
shift
exec "${@:?Missing the command to run}"
mais je cherche quelque chose qui existe déjà (au moins sur macOS et FreeBSD).
myProgram
n'est pas nécessairement une application de bureau (auquel cas je pourrais simplement utiliser la clé Path dans un fichier .desktop ).
env
. Regardez env
. Comparer à rtprio
, idprio
, numactl
, jexec
, chrt
, et en effet les commandes dans les boîtes à outils mentionnés dans les réponses. Il y a un modèle et c'est le chargement de la chaîne.
(cd the/cwd; cmd)
?
(cd the/cwd; cmd)
à env (1) sans l'envelopper avec sh (1).
cd /new/cwd && env VAR=value myProgram
répond pas à vos critères?