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).
myProgramnon è 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 myProgramnon soddisfa i tuoi criteri?