Mamy env (1), aby zmodyfikować środowisko polecenia, które chcemy uruchomić (na przykład env MANPAGER=more man dtrace
). Czy istnieje coś podobnego do modyfikacji katalogu, w którym polecenie ma zostać uruchomione?
Idealnie chciałbym, aby wyglądało to tak:
theMagicCommand /new/cwd myProgram
W ten sposób można go „powiązać” z innymi poleceniami podobnymi do env (1), np.
daemon -p /tmp/pid env VAR=value theMagicCommand /new/cwd myProgram
Do tej pory mogę wymyślić następujące rozwiązanie, które niestety nie ma tego samego interfejsu co env (1):
cd /new/cwd && myProgram
Ponadto mogę po prostu utworzyć prosty skrypt powłoki:
#! /bin/sh -
cd "${1:?Missing the new working directory}" || exit 1
shift
exec "${@:?Missing the command to run}"
ale szukam czegoś, co już istnieje (przynajmniej na macOS i FreeBSD).
myProgram
niekoniecznie jest aplikacją komputerową (w takim przypadku mógłbym po prostu użyć klucza Path w pliku .desktop ).
env
. Patrzeć env
. Porównaj to do rtprio
, idprio
, numactl
, jexec
, chrt
, a nawet poleceń z zestawów narzędzi wymienionych w odpowiedziach. Jest wzór i ładowanie łańcucha.
(cd the/cwd; cmd)
?
(cd the/cwd; cmd)
do env (1) bez owijania go sh (1).
cd /new/cwd && env VAR=value myProgram
nie spełnia twoich kryteriów?