আমরা যে কমান্ডটি চালাতে চাই তার পরিবেশ পরিবর্তন করতে env (1) রয়েছে (উদাহরণস্বরূপ env MANPAGER=more man dtrace
)। কমান্ডটি শুরু হতে চলেছে সেই ডিরেক্টরিটি সংশোধন করার ছাড়াও কি তেমন কিছু আছে?
আদর্শভাবে, আমি এটি দেখতে দেখতে চাই:
theMagicCommand /new/cwd myProgram
এইভাবে এটি অন্যান্য এনভির সাথে (শৃঙ্খলাবদ্ধ) হতে পারে (1) -র মতো কমান্ড, যেমন,
daemon -p /tmp/pid env VAR=value theMagicCommand /new/cwd myProgram
এখনও অবধি আমি নিম্নলিখিত সমাধানগুলি সম্পর্কে ভাবতে পারি, দুর্ভাগ্যক্রমে এনভি (1) এর মতো ইন্টারফেস নেই :
cd /new/cwd && myProgram
এছাড়াও, আমি ঠিক এটির মতো একটি সাধারণ শেল স্ক্রিপ্ট তৈরি করতে পারি:
#! /bin/sh -
cd "${1:?Missing the new working directory}" || exit 1
shift
exec "${@:?Missing the command to run}"
তবে আমি এমন কিছু সন্ধান করছি যা ইতিমধ্যে বিদ্যমান (কমপক্ষে ম্যাকোএস এবং ফ্রিবিএসডি তে)।
myProgram
অগত্যা কোনও ডেস্কটপ অ্যাপ্লিকেশন নয় (এই ক্ষেত্রে আমি কেবল একটি .ডেস্কটপ ফাইলে পাথ কীটি ব্যবহার করতে পারি )।
env
। তাকান env
। তুলনা করুন এটি rtprio
, idprio
, numactl
, jexec
, chrt
, এবং প্রকৃতপক্ষে toolsets কমান্ড উত্তর উল্লেখ করেছে। একটি প্যাটার্ন রয়েছে, এবং এটি চেইন লোডিং।
(cd the/cwd; cmd)
করবেন না ?
(cd the/cwd; cmd)
sh (1) দিয়ে মোড়ানো না হয়ে আপনি সহজেই env (1) এ যেতে পারবেন না ।
cd /new/cwd && env VAR=value myProgram
আপনার ক্রেতার সাথে দেখা হয় না কেন ?