Ç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).
myProgram
mutlaka 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 myProgram
Eleştirmen neden karşılanmıyor?