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).
myProgramniekoniecznie 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 myProgramnie spełnia twoich kryteriów?