У нас есть env (1) для изменения среды команды, которую мы хотим запустить (например env MANPAGER=more man dtrace
). Есть ли что-то подобное, кроме как для изменения каталога, в котором будет запускаться команда?
В идеале мне бы хотелось, чтобы это выглядело так:
theMagicCommand /new/cwd myProgram
Таким образом, он может быть «связан» с другими командами, подобными env (1), например:
daemon -p /tmp/pid env VAR=value theMagicCommand /new/cwd myProgram
До сих пор я могу думать о следующем решении, которое, к сожалению, не имеет того же интерфейса, что и env (1):
cd /new/cwd && myProgram
Кроме того, я могу просто создать простой скрипт оболочки:
#! /bin/sh -
cd "${1:?Missing the new working directory}" || exit 1
shift
exec "${@:?Missing the command to run}"
но я ищу что-то, что уже существует (по крайней мере, в MacOS и FreeBSD).
myProgram
не обязательно является настольным приложением (в этом случае я мог бы просто использовать ключ Path в файле .desktop ).
env
. Посмотрите env
. Сравните это rtprio
, idprio
, numactl
, jexec
, chrt
, и в самом деле команды в наборы инструментов упоминается в ответах. Там есть шаблон, и это цепная загрузка.
(cd the/cwd; cmd)
?
(cd the/cwd; cmd)
к env (1), не заключая его в sh (1).
cd /new/cwd && env VAR=value myProgram
не соответствует вашему критерию?