مقدمة | التثبيت | الاستخدام | بناء الجملة | الإعدادات | عن
أداة لتشغيل العديد من البرامج المكتوبة بعدة لغات من ملف واحد.
عادةً لممارسة لغات البرمجة المتعددة بمجرد أن تحتاج إلى ملفات متعددة أو مشاريع متعددة ، وربما IDE متعددة. Runmany هي أداة تتيح لك كتابة برامج متعددة في نفس الملف باستخدام أي لغات برمجة تريدها ، ثم قم بتشغيلها جميعًا مرة واحدة.
يستخدم Runmany ". Many" كملحق ملفه ، لذلك على سبيل المثال ، إذا كان ملفًا يسمى simple.many لديه المحتويات التالية:
Python:
print("Hi")
JavaScript:
console.log("Hi")
C:
#include <stdio.h>
int main() {
printf("Hin");
return 0;
}
بعد ذلك ، فإن القيام runmany simple.many في Terminal ينتج هذا الإخراج المنظم لتشغيل برامج Python و JavaScript و C داخل:
************************************************************
1. Python
-------------------- output from line 1 --------------------
Hi
************************************************************
2. JavaScript
-------------------- output from line 4 --------------------
Hi
************************************************************
3. C
-------------------- output from line 7 --------------------
Hi
************************************************************
3/3 programs successfully run!
3/3 had the exact same stdout!
************************************************************
يمكن أيضًا تحديد ArgV و Stdin في ملف .Many على أساس كل اللغة ، وهناك العديد من الإعدادات التي يمكن أن تخصيص كيفية تشغيل اللغات وعرضها في الإخراج.
بشكل عام ، يمكن استخدام Runmany لـ:
إجمالي Runmany هو أداة مفيدة لأي شخص يريد اللعب مع لغات برمجة متعددة في وقت واحد.
تأكد من أن لديك Python الإصدار 3.6 أو أعلى مثبت ، ثم قم بتشغيله
pip install runmany
في Terminal لتثبيت أحدث حزمة Runmany Python من PYPI. ثم يجب أن يعمل runmany <filename> على تشغيل ملفات. رؤية المزيد من الطرق للتشغيل في الاستخدام.
يعمل Runmany بشكل أفضل في VSCODE مع ملحق Runmany VSCODE المصاحب والذي يوفر تسليط الضوء على بناء الجملة لملفات Many وطرق سريعة لتشغيلها. قم بتثبيت الامتداد مجانًا من السوق أو عن طريق التشغيل:
code --install-extension discretegames.runmany
تحتاج أيضًا إلى لغات البرمجة التي تريد أن تقوم RunMany بتركيبها على جهاز الكمبيوتر الخاص بك لأن Runmany يستخدم المترجمين الفوريين/المترجمين وراء الكواليس لتشغيل البرامج فعليًا.
لدى Runmany دعمًا مدمجًا للغات التالية:
Ada ، Bash ، Batch ، C ، C#، C ++ ، Dart ، Fortran ، Go ، Groovy ، Haskell ، Java ، JavaScript ، Julia ، Kotlin ، Lisp ، Lua ، Mips ، Pascal ، Perl ، Php ، Powershell ، Print ، Python ، Python 2
بمعنى ، إذا كان لديك بالفعل واحدة من هذه اللغات مثبتة ، فهناك فرصة جيدة لإنعاشها في Runmany تلقائيًا.
يوفر امتداد Runmany VSCode تسليط الضوء على بناء الجملة لجميع هذه اللغات بالإضافة إلى عدد قليل.
هناك طرق لإضافة لغات مخصصة وتغيير سلوك اللغات المدمجة ، وحتى جعلها مختلفة في أنظمة التشغيل المختلفة. لمزيد من المعلومات ، راجع تخصيص اللغات.
لاحظ أن Print هي لغة فائدة تقوم ببساطة بطباعة محتوى الكود إلى stdout ، ويتوقع MIPS أن يكون mars.jar في دليل العمل الحالي.
إذا لم يعمل pip install runmany فحاول pip3 install runmany أو python -m pip install runmany أو python3 -m pip install runmany .
على Windows ، إذا لم ينجح أي شيء ، فقد تحتاج إلى التأكد من أن دلائل تثبيت Python و Scripts في متغير بيئة المسار ، ثم أعد تشغيل المحطة الخاصة بك وحاول مرة أخرى.
تم صنع Runmany في Python 3.9 على Windows وتم اختباره بدقة على إصدارات Python 3.6 و 3.7 و 3.8 و 3.9 و 3.10 على Windows. يجب أن تعمل أيضًا بشكل جيد على Linux و MacOS ، ولكن تم اختبارها على نطاق واسع على أنظمة التشغيل تلك ، خاصةً عندما يتعلق الأمر بالأوامر التي تدير المترجمين/المجمعين لغات البرمجة الأخرى.
أصبح Runmany الآن في الإصدار 2 مع بناء جملة ملفات مُحسّنة ومزيد من الإعدادات. لا يزال الإصدار القديم 1.0.3 متاحًا على PYPI.
لتشغيل ملف Runmany يسمى myfile.many استخدم الأمر الطرفي:
runmany myfile.many
هناك أيضًا وسيطات اختيارية للحصول على المساعدة وتحديد الإعدادات وملفات الإخراج:
runmany [-h --help] [-s --settings <settings-file>] [-o --outfile <output-file>] <input-file>
<input-file> هو ملف. many المطلوب.<settings-file> هو ملف .json الاختياري الذي يحدد كيفية تشغيل اللغات وكيفية تنسيق الإخراج.<output-file> هو الملف الاختياري لإرسال الإخراج إلى. عند حذفها ، يذهب الإخراج إلى stdout. على سبيل المثال ، سيكون الأمر المراد تشغيل myfile.many مع الإعدادات mysettings.json وإرسال الإخراج إلى myoutput.txt سيكون:
runmany -s mysettings.json -o myoutput.txt myfile.many
عند توفير ملف الإعدادات على سطر الأوامر ، يتم تجاهل أي أقسام إعدادات مضمنة في ملف الإدخال. في حالة عدم وجود أي منهما ، أو لأي إعدادات مفقودة ، يتم استخدام default_settings.json كإعداد. رؤية مزيد من المعلومات في الإعدادات.
للحصول على بعض الأمثلة على ملفات. Many ومخرجاتها ، تحقق من مجلد الأمثلة على GitHub أو ManyChallenges Repo حيث يتم حل تحديات الكود المختلفة لمواقع مثل Project Euler في العديد من اللغات في وقت واحد.
ملحق. Many for Runmany غير مطلوب ولكنه موصى به للتوضيح.
يمكن استيراد Runmany واستخدامه من Python على النحو التالي:
from runmany import runmany , runmanys
# Run to stdout
runmany ( 'path/to/myfile.many' , 'path/to/mysettings.json' ) # settings JSON is always optional
# Run to output file
runmany ( 'path/to/myfile.many' , 'path/to/mysettings.json' , 'path/to/myoutput.txt' )
# Run to file object
with open ( 'path/to/myoutput.txt' , 'w' ) as output_file :
runmany ( 'path/to/myfile.many' , 'path/to/mysettings.json' , output_file )
# Run to string
output_string = runmanys ( 'path/to/myfile.many' , 'path/to/mysettings.json' )
print ( output_string ) في كل من وظائف runmany.runmany و runmany.runmanys ، from_string=True ستجعل وسيطة. ماناي يتم تفسيرها كسلسلة بدلاً من مسار الملف ، ويمكن إعطاء وسيطة JSON كمسار إلى ملف .json أو قوانين python التي تشبه JSON ، أو None يوجد أي إعدادات. كما هو الحال مع التشغيل من سطر الأوامر ، فإن توفير الإعدادات هنا يعني أن جميع الإعدادات المضمنة في ملف .Many يتم تجاهلها.
وظيفة runmany.cmdline ، التي تأخذ قائمة من وسيطات سطر الأوامر ، موجودة أيضًا كبديل لاستخدام سطر الأوامر مباشرة.
تنسيق ملف .Many هو ما يتوقعه Runmany عند تشغيل ملف لتشغيله.
بشكل أساسي ، يتكون ملف. Many من أقسام تحتوي كل منها على مقتطفات واحدة أو أكثر. يبدأ القسم بخط رأس غير مؤكد مثل Python: أو Stdin for Python: ، فإن محتوى المقتطف الأول هو ما يظهر بعد القولون وعلى خطوط مسوقية أدناه. يمكن إضافة مقتطفات إضافية إلى القسم مع غير موثوق Also: رأس ، وينتهي القسم عند بدء تشغيل جديد أو End. أو يتم الوصول إلى نهاية الملف.
يتم تشغيل ملف Many من أعلى إلى أسفل ، حيث ينفذ الأقسام والقصاصات بالترتيب الذي تمت مواجهته. والجدير بالذكر ، سيتم تشغيل ملف many بغض النظر عما إذا كان لديه أخطاء في بناء الجملة أم لا. سيتم تجاهل أي بناء جملة غير صالح وذكره في رسالة خطأ.
Stdin for Python: bar baz Python: print('foo' + input()) يعمل تشغيل هذا الملف على تشغيل برنامج Python مرتين ، مرة واحدة bar ومرة واحدة baz ، مما يعطي المخرجات المعنية foobar و foobaz .
Stdin for Python:
bar
Also:
baz
End.
Python:
print('foo' + input())
End.
تابع القراءة للحصول على تفاصيل حول جميع بناء الجملة.
%% باعتباره أول أحرف غير مربعة في السطر يقدم تعليقًا حتى نهاية هذا السطر.
%% this is a comment
Python: %% this is not a comment
%% this is a comment
print(1) %% this is not a comment
لا توجد تعليقات كتلة ، على الرغم من أن Start & Stop قريبة من الوظائف.
كما ذكرنا ، يتكون ملف Many من أقسام تبدأ برأس وتحتوي على مقتطفات. هناك أربعة أنواع من الأقسام:
<language>: أو <language1>, <language2>, ...:Argv: أو Argv for <language1>, <language2>, ...:Stdin: أو Stdin for <language1>, <language2>, ...:Settings: يمكن أن يكون لكل قسم الإعدادات قائمة مفصولة بفاصلة باللغات التي تنطبق عليها في الرأس. يجب أن تتطابق هذه اللغات ، بمجرد تجريدها من المسافة البيضاء ، مع مفاتيح "name" للغات في الإعدادات JSON ، ولكنها ليست حساسة للحالة. ,:%!@ الكلمات الرئيسية مثل "argv" و "stdin" حساسة للحالة.
الرأس Also: يستخدم لإضافة قصاصات إلى قسم ونهاية End. يمكن استخدامها اختياريا لإنهاء قسم.
محتوى المقتطف هو النص بعد أي مسافة بيضاء بعد القولون ( : في رأس المقتطف ، بالإضافة إلى جميع الخطوط أدناه التي يتم وضعها بمسافة بادئة مع علامة تبويب واحدة أو 4 مسافات (مع إزالة هذه المسافة البادئة) ، حتى الرأس أو End. أو نهاية الملف.
لذلك قسم الرمز هذا
Python: import math
print(math.pi)
Also: print('pie')
print('cake')
يحتوي على مقتطفتين هي محتوياتهما:
import math
print ( math . pi ) print ( 'pie' )
print ( 'cake' )الأسطر الفارغة أعلاه أو أدناه الأقسام هي فقط لقدرة على القراءة وليس مطلوبة. الكود غير المعدل خارج الأقسام غير صالح.
يبدأ قسم الكود مباشرة من خلال قائمة مفصولة من اللغات ومحتويات المقتطف هي البرامج التي يجب تشغيلها بهذه اللغات.
إن لغة واحدة في القائمة المنفصلة فاصلة تكاد تكون كافية تقريبًا إلا إذا كنت تكتب polyglots ،
JavaScript:
console.log('Some code that will be run in JavaScript.')
Python, Python 2:
print('Some code that will be run in Python 3 then Python 2.')
Also:
print('Some more code that will be run in Python 3 then Python 2.')
Also: رؤوس المقتطفات في أقسام التعليمات البرمجية مختصرة لتكرار رأس القسم.
Argv هو ناقل الوسيطة ، ويعرف أيضًا باسم وسيطات سطر الأوامر المرسلة إلى البرامج.
يمكن لقسم ArgV إما بدء Argv: للتطبيق على جميع اللغات ، أو Argv for <language1>, <language2>, ...: للتطبيق على اللغات الموجودة في القائمة المفصلية للفاصلة. في كلتا الحالتين يكتب أي مجموعة ArgV السابقة لتلك اللغات.
كل مقتطف في قسم ArgV هو ArgV منفصل سيتم إرساله بدوره إلى برامج اللغات التي ينطبق عليها القسم. هذا يجعل من السهل اختبار العديد من argvs في وقت واحد.
Argv: argv sent to all languages
Argv for Python: 1
Also: 2
Also: 3
Python:
import sys
print(sys.argv[1])
سيتم تشغيل رمز Many هذا ببرنامج Python ثلاث مرات مع Argv 1 ثم 2 ثم 3 .
لكي يعمل ArgV ، يجب وضع العنصر النائب $argv بشكل صحيح في أمر اللغة.
تقريبًا تمامًا مثل قسم ArgV ولكن بالنسبة لمستخدمي دفق الإدخال القياسي عادة ما يكتبون النص فيه.
يمكن لقسم stdin إما بدء Stdin: للتطبيق على جميع اللغات ، أو Stdin for <language1>, <language2>, ...: للتقدم إلى اللغات في القائمة المنفصلة للفاصلة. في كلتا الحالتين يطالب أي stdin سابقة لتلك اللغات.
كل مقتطف في قسم stdin هو stdin منفصل سيتم إرساله بدوره إلى برامج اللغات التي ينطبق عليها القسم. هذا يجعل من السهل اختبار العديد من stdins في وقت واحد.
Stdin: stdin sent to all languages
Stdin for Python: A
Also: B
Also: C
Python:
print(input())
سيتم تشغيل رمز. Many برنامج Python ثلاث مرات مع Stdin A ثم B ثم C .
عندما تنطبق عدة argvs و stdins على لغة واحدة ، يتم إرسال جميع المجموعات الممكنة من كل argv وكل stdin إلى برامج بهذه اللغة.
يبدأ قسم الإعدادات Settings: ويسمح بتضمين إعدادات JSON في ملف. Many ، والذي يتم استخدامه حتى يتم مواجهة قسم الإعدادات الأخرى.
يتم استخدام هذه الإعدادات المدمجة فقط عندما لم يتم توفير الإعدادات على وجه التحديد عندما تم استدعاء Runmany. أي إعدادات مفقودة افتراضية لقيمها في default_settings.json.
Settings:
{ "show_code": true }
Python:
print('this Python code will now be shown as part of the output')
يمكن أيضًا استخدام سلسلة JSON من المسار إلى ملف الإعدادات ، مثل Settings: "path/to/mysettings.json" .
Also: رؤوس المقتطفات في أقسام الإعدادات مختصرة لتكرار رأس القسم. لذلك لا يخدمون غرضًا كبيرًا لأنهم يكتبون على الفور الإعدادات السابقة.
وضع !! في بداية رأس القسم ، يقوم رأس بتعطيل القسم بأكمله وجميع قصاصاته.
وضع ! في بداية رأس المقتطف ، يعطل هذا المقتطف.
!!Python:
print('this is disabled')
Also:
print('this is also disabled')
!Python:
print('this is disabled')
Also:
print('this is not disabled')
!Also:
print('this is disabled')
إذا بدأت أي رؤوس قسم مع @@ هذه الأقسام فقط ، على غرار مربع الاختيار "منفرد" في برنامج تحرير الصوت/الفيديو.
إذا بدأت أي رؤوس مقتطفات داخل قسم تبدأ بـ @ فسيتم تشغيل هذه المقتطفات فقط عند تشغيل القسم.
@@@Python:
print('this is run')
Also:
print('this is not run')
@Also:
print('this is run')
Python:
print('this is not run')
@Also:
print('this is also not run')
لاحظ كيف يحتوي السطر الأول على ثلاثة @@@ ، اثنان لتناقض القسم والآخر لمقتطفه الأول.
كل شيء قبل START: في بداية سطر بمفرده في ملف. Many يتم تجاهله.
كل شيء بعد STOP. في بداية خط من تلقاء نفسه في ملف. Many يتم تجاهله.
لذلك يتم تشغيل قسم JavaScript فقط من هذا الملف.
Python: print('unseen')
START:
JavaScript: console.log('seen')
STOP.
Python: print('unseen')
يجب أن يكون هناك ما يصل إلى START: STOP. في ملف. مانى.
يتم تعريف إعداد Runmany بواسطة ملف JSON الذي يمكن توفيره عند استدعاء Runmany أو مضمّن مباشرة في ملف Many.
تحدد الإعدادات JSON اللغات التي يمكن أن تديرها Runmany وكيف سيتم تشغيلها. كما يحدد كيفية تنسيق إخراج Runmany.
يحتوي الملف default_settings.json على القيم الافتراضية لجميع الإعدادات. يتم استخدام هذه الإعدادات الافتراضية تلقائيًا إذا لم تكن موجودة في إعدادات JSON المقدمة أو المضمنة.
معظم الإعدادات عبارة عن علامات أو قيم بسيطة يمكن تعيينها في كائن JSON الأساسي لتطبيقها على مستوى العالم (انظر قائمة الإعدادات) ولكن يتم استخدام أربعة مفاتيح خاصة في JSON لتخصيص اللغات التي يمكن أن تعمل عليها Runmany أو لإضافة المزيد من اللغات. هذه هي "languages" و "languages_windows" و "languages_linux" و "languages_mac" ( "languages_<os>" سيتم استخدامها للإشارة إلى الثلاثة الأخيرة). إنها صفائف من كائنات JSON ذات المستوى الواحد تحدد الإعدادات للغة التي تطابق مفتاح "name" للكائن.
صفيف "languages_<os>" الذي يطابق نظام نظام التشغيل له أولوية أعلى عند تحديد إعدادات اللغة ، تليها صفيف "languages" ، تليها صفيفات "supplied_languages_<os>" و "supplied_languages" المدمجة. (يجب ألا يتم تعيين صفائف "supplied_languages..." في إعداداتك JSON.) تستخدم اللغات الإعدادات في كائن JSON الأساسي كإعادة نهائية.
على سبيل المثال ، تقوم الإعدادات التالية بتعيين JSON إعداد "show_code" (وهو خاطئ بشكل افتراضي) إلى صواب لجميع اللغات باستثناء Python و Python 2. كما أنه يخلق لغة جديدة "Python 3.10" يمكن استخدامها في رأس قسم ملف. Many على Windows.
{
"show_code" : true ,
"languages" : [
{ "name" : " Python " , "show_code" : false },
{ "name" : " Python 2 " , "show_code" : false }
],
"languages_windows" : [
{ "name" : " Python 3.10 " , "extension" : " .py " , "command" : " py -3.10 " }
]
} مفتاح "name" مطلوب لكل كائن في صفيف اللغات ، ويجب دائمًا توفير مفاتيح "command" و "extension" للغات المخصصة الجديدة. ليس من المنطقي أن يطبق كل إعداد على أساس كل اللغة. على سبيل المثال ، ينطبق "show_equal" على تشغيل ملف .Many ككل ، لذلك فمن المنطقي فقط في كائن JSON الأساسي.
جميع الإعدادات الموصوفة وما إذا كان يمكن تجاوزها أم لا على أساس كل اللغة في "languages" و "languages_<os>" كائنات صفيف:
| مفتاح JSON | يكتب | تقصير | يمكن تجاوزه | وصف |
|---|---|---|---|---|
"command" | خيط | "echo NOCOMMAND" | نعم | أمر وحدة التحكم لتشغيل لغة ، باتباع تنسيق الأوامر. |
"extension" | خيط | "" | نعم | تمديد ملف اللغة ، بما في ذلك النقطة. |
"timeout" | يطفو | 10.0 | نعم | المهلة الزمنية لكل برنامج في ثوانٍ ، أو null دون أي حد زمني. |
"runs" | int | 1 | نعم | عدد مرات تشغيل كل برنامج. يظهر فقط إخراج آخر تشغيل. |
"stderr" | خيط | "smart" | نعم | "yes" / true لدمج البرنامج stderr مع stdout. "no" / false لإخفاء برنامج Stderr. "smart" / null لإظهار STDERR فقط عندما يكون للبرامج رموز خروج غير صفرية. |
"spacing" | int | 1 | نعم | عدد الخطوط الفارغة لإضافتها بعد كل تشغيل. |
"newline" | خيط | "n" | نعم | ما يتم استبداله في محتوى مقتطفات الكود ، ArgV ، و Stdin. أو null لنظام التشغيل الافتراضي. |
"tab" | خيط | "t" | نعم | ما يتم استبدال حرف TAB في محتوى قصاصات Code و ArgV و Stdin. |
"cwd" | خيط | null | نعم | دليل العمل الحالي لتشغيل البرامج من. قد يكون مسارًا نسبيًا. استخدم null أو "." لعدم تغيير إلى دليل العمل الحالي. |
"minimalist" | بول | false | لا | ما إذا كنت تريد عرض جميع الإخراج بتنسيق الحد الأدنى حيث لا يتم عرض المقسمات والرمز و ArgV و Stdin. |
"run_blanks" | بول | false | لا | سواء تم تشغيل المقتطفات الفارغة التي تتكون من المسافة البيضاء البحتة أو تجاهلها. |
"show_time" | بول | false | نعم | ما إذا كان يتم عرض وقت التنفيذ. مفيد لاختبار الأداء عند الجمع بين "runs" . |
"show_command" | بول | false | نعم | ما إذا كان الأمر المستخدم لتشغيل كل برنامج يظهر. مفيد لأوامر تصحيح الأخطاء للغات الجديدة. |
"show_code" | بول | false | نعم | ما إذا كان يتم عرض رمز المصدر للبرنامج. |
"show_argv" | بول | true | نعم | ما إذا كان يتم عرض ArgV للبرنامج (عند الحضور). |
"show_stdin" | بول | true | نعم | ما إذا كان يتم عرض stdin للبرنامج (عند الحضور). |
"show_output" | بول | true | نعم | ما إذا كان يتم عرض إخراج البرنامج. ويشمل ذلك stdout ، واعتمادًا على "stderr" ، stderr. |
"show_runs" | بول | true | لا | ما إذا كانت قائمة التشغيل تظهر. هذا عادة ما يكون الجزء الأكبر من الإخراج. |
"show_stats" | بول | true | لا | ما إذا كان يتم عرض عدد النجاح والفشل بعد تشغيل كل شيء. |
"show_equal" | بول | true | لا | ما إذا كان يتم مقارنة stdouts المطابقة وتجميعها بعد تشغيل كل شيء. |
"show_errors" | بول | true | لا | ما إذا كانت أخطاء رونمان مثل ` |
"strip_argv" | خيط | "smart" | لا | "yes" / true لتجريد محتوى المقتطف من المسافة البيضاء الرائدة والمتزايدة. "no" / false للحفاظ على محتوى المقتطف كما هو. "smart" / null للانضمام إلى جميع الخطوط الموجودة في المقتطف مع المساحات كما لو كانت في سطر واحد. |
"strip_stdin" | خيط | "smart" | لا | "yes" / true لتجريد بداية ونهاية مقتطف من خطوط المساحة البيضاء فقط. "no" / false للحفاظ على محتوى المقتطف كما هو. "smart" / null لفعل الشيء نفسه مثل "yes" / true ولكن أيضا إلحاق خط جديد واحد. |
"strip_code" | خيط | "smart" | نعم | "yes" / true لتجريد بداية ونهاية مقتطف من خطوط المساحة البيضاء فقط. "no" / false للحفاظ على محتوى المقتطف كما هو. "smart" / null لمعالجة الجزء العلوي من ملف .Many كبداية لمقتطف الكود مع جميع الأجزاء غير ذات الصلة ، فالأخطاء في البرامج الإبلاغ عن أرقام الأسطر الصحيحة. |
"strip_output" | خيط | "no" | نعم | "yes" / true في إخراج البرنامج من المسافة البيضاء الرائدة والتخلي عن. "no" / false لترك مخرجات البرنامج كما هو. "smart" / null لتجريد إخراج البرنامج من الخطوط الفارغة والخطوط. |
تجدر الإشارة إلى أن أجزاء الكود ، ArgV ، و stdin من إخراج ملف .Many يتم تجريدها من الخطوط الفارغة للحفاظ على الأشياء نظيفة بصريًا بغض النظر عن قيم "strip_code" ، "strip_argv" ، و "strip_stdin" .
يحدد مفتاح "command" للكائن في "languages" أو "languages_<os>" أمر الطرفي الذي يتم تشغيله لتنفيذ تلك اللغة.
يمكن استخدام العناصر النائبة مثل $file و $dir في أمر للإشارة إلى الملف المؤقت RunMany الذي ينشئه رمز كل برنامج يقوم بتشغيله ويتم تخزين الدليل الذي يتم تخزينه في:
| عنصر نائب | جزء من .../dir/file.ext |
|---|---|
$rawdir | .../dir |
$dir | ".../dir" |
$rawfile | .../dir/file.ext |
$file | ".../dir/file.ext" |
$rawbranch | .../dir/file |
$branch | ".../dir/file" |
$name | file.ext |
$stem | file |
$ext | .ext |
$sep | / (OS محدد) |
$argv | N/A - يتم إدراج ArgV هنا |
$code | N/A - محتوى المقتطف الخام |
لاحظ أن بعض العناصر النائبة "مقتبسين" والبعض الآخر ليس كذلك. قد تحتوي بعض أنظمة التشغيل مثل Windows على مسافات في المسار إلى الملفات المؤقتة ، لذا فإن الاقتباس الصحيح أمر مهم.
إذا لم يكن $ موجودًا في أي مكان في سلسلة الأوامر ، يتم إلحاق $file $argv به. على سبيل المثال ، فإن python Command هو python $file $argv ضمنيًا.
تحقق من صفيف "supplied_languages" في default_settings.json لمزيد من الأمثلة على الأوامر.
لقد كنت مدفوعًا لجعل Runmany من خلال رغبتي في معرفة المزيد من لغات البرمجة ، إلى جانب إزعاجي أنه كلما حاولت دائمًا أن أقوم بعمل مشروع جديد تمامًا لتلك اللغة ، أو حتى التبديل.
أخطط لاستخدامه لممارسة حل تحديات التعليمات البرمجية بلغات متعددة من مواقع مثل Project Euler.
تحقق من بعض حزم بيثون الأخرى.