این دستور exprposix است که می تواند در ارائه دهنده میزبانی رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.
برنامه:
نام
expr - آرگومان ها را به عنوان یک عبارت ارزیابی کنید
خلاصه
صادرات عملوند...
شرح
La صادرات ابزار باید یک عبارت را ارزیابی کند و نتیجه را در خروجی استاندارد بنویسد.
OPTIONS
ندارد.
عملگرها
عبارت واحد ارزیابی شده توسط صادرات باید از تشکیل شود عملوند عملوندها، به عنوان
در بخش توضیحات گسترده توضیح داده شده است. برنامه باید اطمینان حاصل کند که هر یک از
نمادهای عملگر عبارت:
( ) | & = > >= < <= != + - * / % :
و نمادها عدد صحیح و رشته در جدول به عنوان آرگومان های جداگانه ارائه شده است
صادرات.
STDIN
استفاده نشده.
INPUT فایل ها
ندارد.
محیط زیست متغیرها
متغیرهای محیطی زیر باید بر اجرای آن تأثیر بگذارند صادرات:
زبان یک مقدار پیش فرض برای متغیرهای بین المللی سازی که تنظیم نشده اند یا
خالی. (به جلد تعاریف پایه POSIX.1-2008 مراجعه کنید، بخش 8.2,
بین المللی کردن متغیر برای تقدم بین المللی شدن
متغیرهایی که برای تعیین مقادیر دستههای محلی استفاده میشوند.)
LC_ALL اگر روی یک مقدار رشته ای غیر خالی تنظیم شده است، مقادیر بقیه را لغو کنید
متغیرهای بین المللی سازی
LC_COLLATE
محلی را برای رفتار محدوده ها، کلاس های هم ارزی و چند
ترکیب کاراکترها در عبارات منظم و توسط رشته
عملگرهای مقایسه
LC_CTYPE محلی را برای تفسیر توالی بایت های داده متنی تعیین کنید
به عنوان کاراکتر (به عنوان مثال، تک بایت در مقابل کاراکترهای چند بایتی در
آرگومان ها) و رفتار کلاس های کاراکتر در عبارات منظم.
LC_MESSAGES
محلی را که باید برای تأثیرگذاری بر قالب و محتویات استفاده شود، تعیین کنید
پیام های تشخیصی با خطای استاندارد نوشته شده است.
nlspath تعیین محل کاتالوگ پیام برای پردازش LC_MESSAGES.
نامتقارن رویدادها
پیش فرض
با توجه به
La صادرات ابزار باید عبارت را ارزیابی کرده و نتیجه را بنویسد و به دنبال آن a
، به خروجی استاندارد.
STDERR
خطای استاندارد باید فقط برای پیام های تشخیصی استفاده شود.
OUTPUT فایل ها
ندارد.
تمدید شده شرح
شکل گیری عبارت مورد ارزیابی در جدول زیر نشان داده شده است. در
نمادها صادرات, EXPR1و EXPR2 نشان دهنده عبارات تشکیل شده از عدد صحیح و رشته
نمادها و نمادهای عملگر عبارت (همه آرگومان های جداگانه) توسط بازگشتی
کاربرد ساختارهای شرح داده شده در جدول عبارات به ترتیب فهرست شده اند
اولویت فزاینده، با عملگرهای با اولویت برابر که بین افقی گروه بندی شده اند
خطوط همه اپراتورها باید چپ انجمن باشند.
┌───────────────┬───────────────────────────────── ─────────┐
│ اصطلاح │ توضیحات: │
├───────────────┼───────────────────────────────── ─────────┤
│EXPR1 | EXPR2 │ ارزیابی را برمیگرداند EXPR1 اگر │ باشد
│ │ نه تهی و نه صفر. در غیر این صورت، │
│ │ ارزیابی را برمی گرداند EXPR2 اگر │ باشد
│ │ پوچ نیست. در غیر این صورت صفر │
├───────────────┼───────────────────────────────── ─────────┤
│EXPR1 & EXPR2 │ ارزیابی را برمیگرداند EXPR1 اگر │
│ │ هیچ کدام از عبارت ها به null یا │ ارزیابی نمی شوند
│ │ صفر؛ در غیر این صورت، صفر را برمی گرداند. │
├───────────────┼───────────────────────────────── ─────────┤
│ │ نتیجه یک عدد صحیح اعشاری │ را برمیگرداند
│ │ مقایسه اگر هر دو آرگومان │ باشند
│ │ اعداد صحیح؛ در غیر این صورت، نتیجه │ را برمی گرداند
│ │ مقایسه رشته با استفاده از محلی- │
│ │ توالی ترکیبی خاص. نتیجه │
│ │ هر مقایسه 1 است اگر │ مشخص شده باشد
رابطه │ │ درست است، یا 0 اگر │ باشد
│ │ رابطه نادرست است. │
│EXPR1 = EXPR2 │ برابر. │
│EXPR1 > EXPR2 │ بزرگتر از. │
│EXPR1 >= EXPR2 │ بزرگتر یا مساوی. │
│EXPR1 < EXPR2 │ کمتر از │
│EXPR1 <= EXPR2 │ کمتر یا مساوی. │
│EXPR1 != EXPR2 │ برابر نیست. │
├───────────────┼───────────────────────────────── ─────────┤
│EXPR1 + EXPR2 │ جمع اعشاری با مقدار صحیح │
│ │ استدلال. │
│EXPR1 - EXPR2 │ تفریق عدد صحیح اعشاری │
│ │ استدلال. │
├───────────────┼───────────────────────────────── ─────────┤
│EXPR1 * EXPR2 │ ضرب عدد صحیح اعشاری │
│ │ استدلال. │
│EXPR1 / EXPR2 │ تقسیم عدد صحیح اعشار صحیح- │
│ │ آرگومان های ارزش گذاری شده، تولید یک عدد صحیح │
│ │ نتیجه. │
│EXPR1 % EXPR2 │ باقیمانده تقسیم عدد صحیح اعشار │
│ │ آرگومان های با مقدار صحیح. │
├───────────────┼───────────────────────────────── ─────────┤
│EXPR1 : EXPR2 │ بیان تطبیق؛ زیر را ببینید. │
├───────────────┼───────────────────────────────── ─────────┤
│( صادرات ) │ گروه بندی نمادها. هر عبارتی می تواند │ باشد
│ │ داخل پرانتز قرار می گیرد. پرانتز │
│ │ را می توان تا عمق │ تودرتو کرد
│ │ {EXPR_NEST_MAX}. │
├───────────────┼───────────────────────────────── ─────────┤
│عدد صحیح │ استدلالی که فقط از یک │ تشکیل شده است
│ │ (اختیاری) یکنواختی منهای به دنبال │
│ │ رقم. │
│رشته │ آرگومان رشته ای؛ زیر را ببینید. │
└───────────────┴───────────────────────────────── ─────────┘
تطابق اصطلاح
La ':' عملگر تطبیق باید رشته حاصل از ارزیابی را مقایسه کند EXPR1
با الگوی بیان منظم ناشی از ارزیابی EXPR2. منظم
نحو عبارت باید همانی باشد که در جلد Base Definitions POSIX.1-2008 تعریف شده است.
بخش 9.3, اساسی منظم عبارات، با این تفاوت که همه الگوها به آن متصل می شوند
ابتدای رشته (یعنی فقط دنباله هایی که از اولین کاراکتر a شروع می شوند
رشته ها با عبارت منظم مطابقت داده می شوند) و بنابراین، مشخص نیست که آیا
'^' یک شخصیت خاص در آن زمینه است. معمولاً عملگر تطبیق باید a را برگرداند
رشته ای که تعداد کاراکترهای منطبق را نشان می دهد ('0' در مورد شکست). متناوبا، اگر
این الگو شامل حداقل یک عبارت فرعی است "[\(...\)]"، رشته
مطابق با عبارت back-reference "\1" بازگردانده خواهد شد. اگر مرجع برگشتی
بیان "\1" مطابقت ندارد، سپس رشته تهی باید برگردانده شود.
رشته اپران
آرگومان رشته ای آرگومانی است که به عنوان یک آرگومان قابل شناسایی نیست عدد صحیح استدلال یا به عنوان
یکی از نمادهای عملگر عبارت نشان داده شده در بخش OPERANDS.
استفاده از آرگومان های رشته ای طول, بستر, شاخص، یا همخوانی داشتن نتایج نامشخصی ایجاد می کند.
خروج وضعیت
مقادیر خروجی زیر باید برگردانده شوند:
0 The بیان نه صفر و نه صفر ارزیابی می کند.
1 The بیان صفر یا صفر می شود.
2 نامعتبر است بیان.
>2 خطایی روی داد.
آثار OF خطاها
پیش فرض
La پیروی بخش هستند آموزنده
کاربرد طریقه استفاده
پس از پردازش آرگومان توسط پوسته، صادرات لازم نیست که بتوانید به آن بگویید
تفاوت بین یک عملگر و یک عملوند به جز مقدار. اگر "$a" is '='از
فرمان:
صادرات $a = '='
به نظر می رسد:
صادرات = = =
همانطور که استدلال ها به آن منتقل می شوند صادرات (و همه آنها ممکن است به عنوان '=' اپراتور). در
زیر به طور قابل اعتماد کار می کند:
صادرات X$a = X=
همچنین توجه داشته باشید که این حجم از POSIX.1-2008 به پیاده سازی ها اجازه می دهد تا برنامه های کاربردی را گسترش دهند.
La صادرات utility اجازه می دهد تا آرگومان های عدد صحیح با یک منهای یکپارچه قبل از آن قرار گیرند. این
به این معنی است که یک آرگومان عدد صحیح می تواند مانند یک گزینه به نظر برسد. بنابراین، مطابق
برنامه باید از "--" ساختار دستورالعمل 10 از جلد تعاریف پایه
از POSIX.1-2008، بخش 12.2, سودمندی نحو دستورالعمل برای محافظت از عملوندهای خود در صورت وجود
هر شانسی است که عملوند اول ممکن است یک عدد صحیح منفی (یا هر رشته ای با یک پیشرو باشد
منهای).
مثال ها
La صادرات ابزار یک نحو نسبتاً دشواری دارد:
* بسیاری از عملگرها نیز اپراتورهای کنترل پوسته یا کلمات رزرو شده هستند، بنابراین دارند
برای فرار در خط فرمان.
* هر بخش از عبارت از آرگومان های جداگانه تشکیل شده است، بنابراین استفاده آزادانه از
کاراکتر مورد نیاز است. مثلا:
┌─────────────────┬-
│ نامعتبر │ معتبر │
├─────────────────┼────
│صادرات 1+2 │ صادرات 1 + 2 │
│صادرات "1 + 2" │ صادرات 1 + 2 │
│صادرات 1 + (2 * 3) │ صادرات 1 + \( 2 \* 3 \) │
└─────────────────┴
در بسیاری از موارد، ویژگی های ریاضی و رشته ای به عنوان بخشی از فرمان پوسته ارائه می شود
استفاده از زبان ساده تر از معادل های آن است صادرات. فیلمنامه های جدید نوشته شده باید
اجتناب از صادرات به نفع ویژگی های جدید در پوسته؛ دیدن بخش 2.5, پارامترهای و
متغیر و بخش 2.6.4, حساب توسعه.
دستور زیر:
a=$(expr $a + 1)
1 را به متغیر اضافه می کند a.
دستور زیر برای "$a" برابر با هر کدام /usr/abc/file یا فقط پرونده:
صادرات $a : '.*/\(.*\)' \| $a
آخرین بخش از نام مسیر (یعنی پرونده). برنامه های کاربردی باید از
شخصیت '/' به تنهایی به عنوان استدلال استفاده می شود. صادرات ممکن است آن را به عنوان عملگر تقسیم تفسیر کند.
دستور زیر:
صادرات "//$a" : '.*/\(.*\)'
نمایش بهتری از مثال قبلی است. اضافه شدن از "//" کاراکتر
هر گونه ابهام در مورد عملگر تقسیم را از بین می برد و کل عبارت را ساده می کند.
همچنین توجه داشته باشید که نام مسیر ممکن است شامل کاراکترهای موجود در IFS متغیر و باید
نقل شود برای اجتناب از داشتن "$a" به آرگومان های متعدد بسط دهید.
دستور زیر:
صادرات "$VAR" : '.*'
تعداد کاراکترها را برمی گرداند VAR.
منطقی
در یک پیشنهاد اولیه، EREها در نحو عبارت تطبیق استفاده شد. این تغییر کرد
به BRE ها برای جلوگیری از شکستن برنامه های تاریخی.
استفاده از یک پیشرو در BRE نامشخص است زیرا بسیاری از تاریخی است
پیاده سازی ها با وجود سیستم خود، آن را به عنوان یک شخصیت خاص در نظر گرفته اند
مستندات. مثلا:
صادرات فو : ^فو صادرات ^فو : ^فو
برگرداندن 3 و 0 به ترتیب در آن سیستم ها. مستندات آنها دلالت بر این دارد
معکوس. بنابراین، برای جلوگیری از شکستن تاریخ، شرایط لنگر نامشخص باقی مانده است
اسکریپت هایی که بر این ویژگی غیرمستند تکیه دارند.
آینده جهت
ندارد.
از exprposix آنلاین با استفاده از خدمات onworks.net استفاده کنید