Powershell: تعديل متغيرات البيئة (على سبيل المثال $ env: PSModulePath) على Linux

تم إنشاؤها على ٢٥ يوليو ٢٠١٧  ·  3تعليقات  ·  مصدر: PowerShell/PowerShell

تحية للجميع،

أعتقد أنه سيكون من الرائع أن تتمكن من تغيير متغيرات البيئة (يمكن الوصول إليها على سبيل المثال بواسطة $ env: Name أو Get-ChildItem env :) على Linux.

على سبيل المثال لتعيين قيم هناك ، ملف تكوين جديد في / etc ؟

في Windows يمكنني تغيير PSModulePath على سبيل المثال وإضافة مسار مخصص. الخيار الوحيد في Linux هو إنشاء ملف تعريف ps1 لجميع المستخدمين.

شكرا لك.

Issue-Discussion Issue-Enhancement WG-Engine-Providers

التعليق الأكثر فائدة

هل يمكنني أن أقترح عليك تغيير عنوان مشكلتك لتعكس حقيقة أنك تبحث عن PowerShell لتقديم طريقة _profile-مستقلة_ لتحديد متغيرات البيئة باستمرار؟

بعض الأفكار:

  • متغيرات البيئة بحكم تعريفها _shell / application-agnostic_ ويمكن رؤيتها من خلال _ all_ العمليات التابعة ، بغض النظر عن نوع shell / التطبيق الذي أنشأها.

  • PowerShell "يستمع إلى" فقط _2_ متغيرات البيئة ، $env:PSModulePath أحدها.

  • بناءً على ما أفهمه ، فإن بيئات Linux (جميعها؟) لديها بالفعل ملف /etc/environment كآلية على مستوى النظام ، ومستقلة عن الغلاف لتعريف متغيرات البيئة.

  • ومع ذلك ، إذا تم استخدام مجموعة من متغيرات البيئة حقًا بواسطة _PowerShell_ ، فإن ملف تعريف _PowerShell_ على مستوى النظام - $profile.AllUsersAllHosts - يمكن القول إنه المكان المناسب لتعريفها.

    • سيعمل هذا الحل أيضًا مع macOS ، الذي لا يحتوي على آلية على مستوى النظام لتحديد متغيرات البيئة (بعد الآن).
    • (يحتوي نظام macOS على /etc/profile ، والذي من المتوقع أن يقوم الغلاف الافتراضي بمعالجته ، والذي (أ) لا يسري على تطبيقات واجهة المستخدم الرسومية ، و (ب) يتطلب الغلاف الافتراضي لتلبية هذا التوقع و (ج) يتطلب shell الافتراضي لفهم بناء جملة POSIX-shell (أي PowerShell ، إذا تم تعريفه على أنه shell الافتراضي ، فلن [_تحديث_: /etc/profile و ~/.profile الآن _are_ يتم تكريمه إذا بدأت بـ pwsh -l أو استخدم PowerShell كصدفة افتراضية]).

ال 3 كومينتر

هل يمكنني أن أقترح عليك تغيير عنوان مشكلتك لتعكس حقيقة أنك تبحث عن PowerShell لتقديم طريقة _profile-مستقلة_ لتحديد متغيرات البيئة باستمرار؟

بعض الأفكار:

  • متغيرات البيئة بحكم تعريفها _shell / application-agnostic_ ويمكن رؤيتها من خلال _ all_ العمليات التابعة ، بغض النظر عن نوع shell / التطبيق الذي أنشأها.

  • PowerShell "يستمع إلى" فقط _2_ متغيرات البيئة ، $env:PSModulePath أحدها.

  • بناءً على ما أفهمه ، فإن بيئات Linux (جميعها؟) لديها بالفعل ملف /etc/environment كآلية على مستوى النظام ، ومستقلة عن الغلاف لتعريف متغيرات البيئة.

  • ومع ذلك ، إذا تم استخدام مجموعة من متغيرات البيئة حقًا بواسطة _PowerShell_ ، فإن ملف تعريف _PowerShell_ على مستوى النظام - $profile.AllUsersAllHosts - يمكن القول إنه المكان المناسب لتعريفها.

    • سيعمل هذا الحل أيضًا مع macOS ، الذي لا يحتوي على آلية على مستوى النظام لتحديد متغيرات البيئة (بعد الآن).
    • (يحتوي نظام macOS على /etc/profile ، والذي من المتوقع أن يقوم الغلاف الافتراضي بمعالجته ، والذي (أ) لا يسري على تطبيقات واجهة المستخدم الرسومية ، و (ب) يتطلب الغلاف الافتراضي لتلبية هذا التوقع و (ج) يتطلب shell الافتراضي لفهم بناء جملة POSIX-shell (أي PowerShell ، إذا تم تعريفه على أنه shell الافتراضي ، فلن [_تحديث_: /etc/profile و ~/.profile الآن _are_ يتم تكريمه إذا بدأت بـ pwsh -l أو استخدم PowerShell كصدفة افتراضية]).

حاولت تعيين متغير بيئة مثل هذا على جهاز Ubuntu:
كنت آمل أن يقوم هذا بتحرير ملف / etc / environment لتعيين نظام متغير البيئة على نطاق واسع.

للأسف ، لم يقم NET Core بعد بتنفيذ طريقة لتحديد متغيرات البيئة في أنظمة Unix. تنص الوثائق الخاصة بهذه الطرق على أن تطبيق القيم على أي شيء آخر غير العملية الحالية مدعوم فقط على windows. : frowning_face:

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات