हमारे पास उस कमांड के वातावरण को संशोधित करने के लिए 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
यह जरूरी नहीं है कि एक डेस्कटॉप एप्लिकेशन (जिस स्थिति में मैं .desktop फ़ाइल में पथ कुंजी का उपयोग कर सकता हूं )।
env
। को देखो env
। की तुलना में यह करने के लिए rtprio
, idprio
, numactl
, jexec
, chrt
, और वास्तव में उपकरण सेट में आदेश के जवाब में बताया गया। एक पैटर्न है, और यह चेन लोडिंग है।
(cd the/cwd; cmd)
?
(cd the/cwd; cmd)
श (1) को लपेटे बिना env (1) पास नहीं कर सकते ।
cd /new/cwd && env VAR=value myProgram
अपने समीरा से क्यों नहीं मिलता?