Abbiamo env (1) per modificare l'ambiente del comando che vogliamo eseguire (ad esempio env MANPAGER=more man dtrace
). Esiste qualcosa di simile, ma per modificare la directory in cui verrà avviato il comando?
Idealmente, vorrei che fosse così:
theMagicCommand /new/cwd myProgram
In questo modo potrebbe essere "incatenato" con altri comandi simili a env (1), ad es.
daemon -p /tmp/pid env VAR=value theMagicCommand /new/cwd myProgram
Finora posso pensare alla seguente soluzione, che purtroppo non ha la stessa interfaccia di env (1):
cd /new/cwd && myProgram
Inoltre, posso semplicemente creare un semplice script shell come questo:
#! /bin/sh -
cd "${1:?Missing the new working directory}" || exit 1
shift
exec "${@:?Missing the command to run}"
ma sto cercando qualcosa che esiste già (almeno su macOS e FreeBSD).
myProgram
non è necessariamente un'applicazione desktop (nel qual caso potrei semplicemente usare la chiave Path in un file .desktop ).
env
. Guarda env
. Confrontarlo rtprio
, idprio
, numactl
, jexec
, chrt
, e in effetti i comandi nei set di strumenti menzionati nelle risposte. C'è uno schema ed è un caricamento a catena.
(cd the/cwd; cmd)
?
(cd the/cwd; cmd)
a env (1) senza racchiuderlo con sh (1).
cd /new/cwd && env VAR=value myProgram
non soddisfa i tuoi criteri?