PowerShell 7 أفضل الممارسات عبر الأنظمة الأساسية

أحد أكبر المساهمين في هذا الارتفاع في الشعبية هو أن فريق PowerShell في Microsoft هو الذي نجح في ذلك مفتوحة المصدر في عام 2016، تقديم PowerShell Core للإصدار 6 من PowerShell. ومع ذلك، فقد تسبب ذلك في بعض المشكلات غير المتوقعة، مثل الاضطرار إلى دعم التوافق بين الإصدار 5.1 (Windows PowerShell) والإصدار 6.2 (PowerShell Core)، أو استخدام أوامر cmdlets نفسها للقيام بأشياء مختلفة قليلاً على إصدارات مختلفة من .شبكة.

لتسوية ذلك، أعلن فريق PowerShell أنهم سيتوقفون عن استخدام PowerShell 5.1 وأن ​​الإصدار التالي بعد 6.2 سيكون بوويرشيل 7، والذي يهدف إلى استبدال Windows PowerShell على أنظمة تشغيل Windows دون التضحية بأي توافق عند التشغيل على Mac أو Linux.

بوويرشيل 7 ذهب GA في مارس من العام الماضي، وبينما تعمل أوامر cmdlets نفسها على أي نظام تشغيل، لا تزال هناك بعض أفضل الممارسات التي يجب اتباعها للتأكد من أن برامج PowerShell النصية تعمل بسلاسة بغض النظر عن مكان تشغيلها.



استخدم أسماء الدليل الصغيرة

في نظام التشغيل ويندوز،

\ 

يتم استخدام حرف الخط المائل العكسي أو الخط المائل العكسي لتدوين الدلائل المتداخلة في نظام الملفات، بينما في Linux وmacOS، يتم استخدام

/ 

أو يقوم حرف الشرطة المائلة للأمام بذلك بدلاً من ذلك ويتم استخدام الشرطة المائلة العكسية كحرف هروب. (إذا واجهتك مشكلة في الحفاظ على هذين المستقيمين، فقط تخيل أنهما ينقلبان. الشرطة المائلة العكسية تتراجع، والشرطة المائلة للأمام تتراجع)

قد يؤدي هذا إلى بعض التحديات عند البرمجة النصية بمعظم اللغات الأخرى، ولكن PowerShell 7 سيترجم إما إلى كائن دليل ولا يهتم حقًا بالأحرف المستخدمة لتقسيم المسار. ومع ذلك، فإن أحد المجالات التي يمكن أن تتعرض فيها للمشاكل هو أن أنظمة ملفات Linux وmacOS تهتم بالأحرف الكبيرة، وستتعامل مع أسماء الأدلة في حالات مختلفة على أنها أدلة مختلفة.

أفضل الممارسات هنا هي الاحتفاظ بأسماء الأدلة بأحرف صغيرة، بغض النظر عن المسار الذي تستخدمه. إذا كنت بحاجة إلى ذلك، يمكنك تمرير المسار كسلسلة واستدعاء


ToLower() 

الطريقة عليه في التعليمات البرمجية الخاصة بك، ولكن هذا لن يعمل إلا إذا كان اسم الدليل مكتوبًا بأحرف صغيرة بالفعل.

  احتفظ بأسماء الأدلة بأحرف صغيرة، بغض النظر عن المسار الذي تستخدمه.

لا تستخدم التعرج

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

ls 

أو

cgi 

من

Get-ChildItem 

حتى مع اكتمال علامة التبويب. ومع ذلك، نادرًا ما يكون استخدام الأسماء المستعارة في البرامج النصية فكرة جيدة لأنها تجعل البرنامج النصي يعتمد على تعيين هذا الاسم المستعار أينما يتم تشغيله.

وهذا ينطبق بشكل خاص على أنظمة Linux وmacOS. على تلك الأنظمة الأساسية، بدلاً من استخدام اسم مستعار لتشغيل أمر PowerShell آخر، فإنه يقوم بتشغيل الأمر الأصلي، مما يعني أن كائن الإرجاع سيكون مختلفًا تمامًا، وسيؤدي ذلك إلى التخلص من بقية البرنامج النصي.


ls وGet-ChildItem يعملان على نظام التشغيل Windows 10 مقابل Ubuntu Linux

ls 

و

Get-ChildItem 

يعمل على نظام التشغيل Windows 10 مقابل Ubuntu Linux.

بعض الأوامر مثل

ls 

قد لا يتغير كثيرًا، ولكن مع الآخرين مثل

date 

الأمر، يقوم PowerShell بإرجاع كائن مختلف تمامًا عن أمر Linux الأصلي، والذي سيؤدي إلى التخلص من أي شيء يعتمد على الإخراج لاحقًا في التعليمات البرمجية. حتى إذا كنت تحتاج فقط إلى قيمة السلسلة في برنامج PowerShell النصي، فاستخدم PowerShell للحصول عليها.

date يُرجع كائن DateTime على نظام Windows وكائن String على نظام Linux.

date 

تقوم بإرجاع كائن DateTime على Windows وكائن String على Linux.


استخدم بيان التبديل لتحديد نظام التشغيل

في بعض الأحيان، يكون لديك تبعية لا يمكنك الكتابة حولها، بغض النظر عن أنواع الحيل التي تستخدمها. في هذه الحالات، يحتوي PowerShell 7 على عدد قليل من العلامات المحجوزة التي ستعود

true 

أو

false 

اعتمادا على نظام التشغيل الذي تعمل منه. على سبيل المثال،

$IsMacOS 

سوف يعود

True 

على نظام التشغيل MacOS و

False 

على أي نظام تشغيل آخر، و

$IsLinux 

سوف يعود

True 

بغض النظر عن توزيعة Linux التي تستخدمها.

هناك أيضا

$IsWindows 

العلم، ولكن مع تحذير واحد كبير: إنه يعود فقط

True 

عند تشغيل PowerShell Core أو PowerShell 7 على نظام التشغيل Windows. لم يتم إعادته مطلقًا إلى Windows PowerShell، لذلك سيؤدي فقط إلى ظهور خطأ عند التشغيل هناك.

توصل تايلر ليونهارت من فريق PowerShell في Microsoft إلى حل رائع لتحديد نظام التشغيل الذي تستخدمه عند تشغيل النظام الأساسي المشترك، وهو بيان التبديل الذي يصفه هنا.


حل رائع لتحديد نظام التشغيل الذي تستخدمه عند تشغيل النظام الأساسي المشترك.

الآن يجب أن تكون لديك فكرة عن بعض الطرق لكتابة البرامج النصية والوحدات النمطية الخاصة بـ PowerShell 7 حتى تتمكن من تشغيلها بسلاسة أكبر عبر الأنظمة الأساسية. جربها في البرامج النصية الخاصة بك اليوم!

(العلامات للترجمة)مايكروسوفت

أضف تعليق