سؤال

أنا أحاول الاتصال شيل أن يحدد مجموعة من متغيرات البيئة على الخادم لدينا من الزئبقي هوك.قذيفة النصي يحصل دعا بخير عندما جديدا changegroup يأتي في ، ولكن متغيرات البيئة لا تحمل أكثر من الماضي الدعوة إلى قذيفة النصي.

بلدي hgrc الملف على respository يبدو مثل هذا:

[hooks]
changegroup = shell_script
changegroup.env = env

أستطيع أن أرى إخراج قذيفة النصي ومن ثم إخراج env الأمر ، ولكن env الأمر لا تشمل البيئة الجديدة المتغيرات التي وضعتها قذيفة النصي.

يجب التحقق من أن قذيفة النصي يعمل بشكل جيد عند تشغيل من تلقاء نفسه ولكن عند تشغيلها في سياق الزئبقي هوك فإنه لا بشكل صحيح تعيين البيئة.

هل كانت مفيدة؟

المحلول

البرامج النصية قذيفة لا يمكن تعديل البيئة.

http://tldp.org/LDP/abs/html/gotchas.html

السيناريو قد لا الصادرات المتغيرات العودة إلى الأصل العملية ، شل ، أو على البيئة.تماما كما تعلمنا في علم الأحياء, طفل العملية يمكن أن يرث من الوالدين ، ولكن ليس العكس

$ cat > eg.sh 
export FOO="bar";
^D
$ bash eg.sh 
$ echo $FOO; 

$

أيضا, المشكلة أكبر ، كما لديك مكالمات متعددة من باش

bash 1 -> hg -> bash 2 ( shell script ) 
             -> bash 3 ( env call )

فإنه سيكون مثل أفكر في تعيين متغير في البرنامج النصي php ثم سحرية الحصول عليه مع أخرى ببساطة عن طريق تشغيل واحدة بعد الأخرى.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top