У нас є 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
не відповідає вашим критериям?