Tenemos env (1) para modificar el entorno del comando que queremos ejecutar (por ejemplo env MANPAGER=more man dtrace
). ¿Hay algo similar pero para modificar el directorio en el que se va a iniciar el comando?
Idealmente, me gustaría que se vea así:
theMagicCommand /new/cwd myProgram
De esta manera, podría "encadenarse" con otros comandos similares a env (1), por ejemplo,
daemon -p /tmp/pid env VAR=value theMagicCommand /new/cwd myProgram
Hasta ahora puedo pensar en la siguiente solución, que desafortunadamente no tiene la misma interfaz que env (1):
cd /new/cwd && myProgram
Además, puedo crear un script de shell simple como este:
#! /bin/sh -
cd "${1:?Missing the new working directory}" || exit 1
shift
exec "${@:?Missing the command to run}"
pero estoy buscando algo que ya existe (al menos en macOS y FreeBSD).
myProgram
no es necesariamente una aplicación de escritorio (en cuyo caso podría usar la clave Path en un archivo .desktop ).
env
. Mira env
. Compararlo con rtprio
, idprio
, numactl
, jexec
, chrt
, y de hecho los comandos de los conjuntos de herramientas menciona en las respuestas. Hay un patrón, y se está cargando en cadena.
(cd the/cwd; cmd)
?
(cd the/cwd; cmd)
a env (1) sin envolverlo con sh (1).
cd /new/cwd && env VAR=value myProgram
cumple con tus criterios?