Çalıştırmak istediğimiz komutun ortamını değiştirmek için env (1) var (örneğin env MANPAGER=more man dtrace). Komutun başlatılacağı dizini değiştirmek için benzer bir şey var mı?
İdeal olarak, şöyle görünmesini isterim:
theMagicCommand /new/cwd myProgram
Bu şekilde diğer env (1) benzeri komutlarla "zincirlenebilir", ör.
daemon -p /tmp/pid env VAR=value theMagicCommand /new/cwd myProgram
Şimdiye kadar env (1) ile aynı arayüze sahip olmayan aşağıdaki çözümü düşünebilirim :
cd /new/cwd && myProgram
Ayrıca, ben sadece böyle basit bir kabuk komut dosyası oluşturabilirsiniz:
#! /bin/sh -
cd "${1:?Missing the new working directory}" || exit 1
shift
exec "${@:?Missing the command to run}"
ama zaten var olan bir şeyi arıyorum (en azından macOS ve FreeBSD'de).
myProgrammutlaka bir masaüstü uygulaması değildir (bu durumda Path anahtarını bir .desktop dosyasında kullanabilirim ).
env. Şuna bak env. O ile karşılaştırın rtprio, idprio, numactl, jexec, chrt, toolsets içinde ve aslında komutlar cevapları bahsetti. Bir desen var ve zincir yükleniyor.
(cd the/cwd; cmd)?
(cd the/cwd; cmd)env (1) öğesine sh (1) ile sarmadan kolayca geçemezsiniz .
cd /new/cwd && env VAR=value myProgramEleştirmen neden karşılanmıyor?