این دستور yash است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.
برنامه:
نام
yash - یک پوسته خط فرمان سازگار با POSIX
خلاصه
یاش [گزینه ها...] [-] [عملگرها...]
معرفی
هنوز بساک صدف (yash) یک پوسته خط فرمان برای سیستم عامل های یونیکس مانند است. پوسته
مطابق با استاندارد POSIX.1-2008 (در بیشتر قسمت ها) و در واقع بیشتر است
منطبق با سایر پوسته های منطبق با POSIX. علاوه بر این، دارای ویژگی های بسیاری است که هستند
برای استفاده های تعاملی، مانند تاریخچه فرمان و ویرایش خط فرمان استفاده می شود.
این برنامه را می توان آزادانه تغییر داد و تحت شرایط GNU General بازتوزیع کرد
مجوز عمومی (نسخه 2). استفاده کنید of این برنامه is تمام at خود را خود خطر. آنجا is نه
گارانتی و la نویسنده is نه مسئوليت برای هر عواقب ایجاد می شود by استفاده کنید of این
برنامه است.
این راهنما را می توان آزادانه تغییر داد و تحت شرایط Creative Commons دوباره توزیع کرد
Attribution-ShareAlike 2.1 ژاپن.
Yash توسط 渡邊裕貴 (WATANABE Yuki) با نام مستعار Magicant توسعه و نگهداری می شود. یاش
پروژه توسعه و صفحه اصلی یاش توسط OSDN میزبانی می شود.
فراخوانی
هنگامی که به عنوان یک برنامه فراخوانی می شود، yash مراحل اولیه از پیش تعریف شده را انجام می دهد و
به طور مکرر دستورات را می خواند و اجرا می کند. آرگومان های خط فرمان ارائه شده در فراخوانی
تعیین می کند که پوسته چگونه خود را مقداردهی اولیه می کند و دستورات را اجرا می کند.
فرمان خط استدلال
نحو آرگومان های خط فرمان برای yash مطابق با POSIX است. همانطور که در POSIX تعریف شده است،
آرگومان ها به تفکیک می شوند گزینه های و عملوندها. برای توضیح بیشتر در مورد
گزینه ها و عملوندها، به نحو آرگومان فرمان مراجعه کنید. همه گزینه ها باید قبل از عملوندها باشند.
تفسیر عملوندها به گزینه های مشخص شده بستگی دارد.
هنگامی که شما را مشخص می کنید -c (--cmdline) گزینه، شما باید حداقل یک عملوند بدهید. پوسته
اولین عملوند را به عنوان یک رشته فرمان تفسیر و اجرا می کند. عملوند دوم، در صورت وجود،
برای مقداردهی اولیه استفاده می شود 0 پارامتر خاص عملوندهای دیگر، در صورت وجود، استفاده می شوند
مقداردهی اولیه پارامترهای موقعیتی وقتی که -c (--cmdline) گزینه مشخص شده است
پوسته هیچ فایل یا ورودی استاندارد را نمی خواند (مگر اینکه از نقطه داخلی استفاده شود).
اگر شما مشخص کنید -s (--stdin) گزینه، پوسته ورودی استاندارد را می خواند، آن را تفسیر می کند
به عنوان دستور وارد کرده و آنها را اجرا می کند. تمام عملوندهای داده شده برای مقداردهی اولیه استفاده می شوند
پارامترهای موقعیتی در 0 پارامتر ویژه به نام پوسته مقداردهی اولیه می شود
به عنوان فراخوانی شده است.
اگر هیچ کدام را مشخص نکنید -c (--cmdline) و نه -s (--stdin) گزینه، پوسته یک فایل را می خواند،
محتویات فایل را به عنوان دستور تفسیر می کند و آنها را اجرا می کند. عملوند اول مشخص می کند
نام مسیر فایل از عملوندهای باقیمانده برای مقداردهی اولیه موقعیت استفاده می شود
مولفه های. اگر هیچ عملوندی را ندهید، پوسته ورودی استاندارد را طوری می خواند که انگار
-s (--stdin) گزینه مشخص شده است.
شما نمی توانید از هر دو استفاده کنید -c (--cmdline) و -s (--stdin) گزینه ها در یک زمان.
اگر یکی را مشخص کنید --کمک or - نسخه گزینه، پوسته هرگز حالت معمول را انجام نمی دهد
مقداردهی اولیه یا اجرای دستور در عوض، فقط استفاده مختصر را چاپ می کند (برای --کمک) و یا
اطلاعات نسخه (برای - نسخه) اگر - نسخه گزینه همراه با -v
(-- پرحرف) گزینه، پوسته فهرستی از ویژگی های اختیاری موجود را نیز چاپ می کند.
اگر شما مشخص کنید -i (--در ارتباط بودن) گزینه، پوسته به حالت تعاملی می رود. اگر
شما را مشخص کنید +i (++ تعاملی) گزینه، برعکس، پوسته هرگز به داخل نمی رود
حالت تعاملی
اگر شما مشخص کنید -l (--وارد شدن) گزینه، پوسته مانند پوسته ورود عمل می کند.
La --noprofile, --norcfile, --مشخصاتو -rcfile گزینه ها تعیین می کنند که پوسته چگونه است
اولیه (برای جزئیات به زیر مراجعه کنید).
علاوه بر گزینه هایی که در بالا توضیح داده شد، می توانید گزینه هایی را مشخص کنید که می توان آنها را مشخص کرد
به مجموعه داخلی
اگر عملوند اول باشد - و گزینه ها و عملوندها با آنها از هم جدا نمی شوند --از
عملوند اول نادیده گرفته می شود.
دهی اولیه of یاش
Yash خود را به صورت زیر مقداردهی اولیه می کند:
1. یاش ابتدا نامی را که به آن فراخوانی شده است تجزیه می کند. اگر نام با شروع شود -، پوسته
به عنوان یک پوسته ورود رفتار می کند. اگر نام است sh (از جمله نام هایی مانند / بن / شل)،
پوسته به حالت POSIXly-correct می رود.
2. اگر هیچ عملوندی داده نشود و ورودی استاندارد و خطای استاندارد هر دو به هم متصل شوند
به یک ترمینال، پوسته به حالت تعاملی می رود مگر اینکه +i (++ تعاملی)
گزینه مشخص شده است.
3. کنترل کار به طور خودکار در یک پوسته تعاملی فعال می شود مگر اینکه +m (++مانیتور)
گزینه مشخص شده است.
4. Yash دستورات را از فایل های زیر می خواند و اجرا می کند (مگر اینکه واقعی و
شناسه های کاربر مؤثر فرآیند پوسته یا گروه واقعی و مؤثر متفاوت است
شناسه های فرآیند پوسته متفاوت است):
1. اگر به عنوان یک پوسته ورود به سیستم رفتار می کند، پوسته فایل مشخص شده توسط
--پروفایل=نام فایل گزینه مگر اینکه --noprofile گزینه مشخص شده است یا پوسته
در حالت POSIXly-correct قرار دارد.
اگر --پروفایل=نام فایل گزینه مشخص نشده است، پوسته می خواند ~/.yash_profile
به صورت پیش فرض
2. اگر در حالت تعاملی، پوسته فایل مشخص شده توسط را می خواند
--rcfile=نام فایل گزینه مگر اینکه --norcfile گزینه مشخص شده است.
اگر --rcfile=نام فایل گزینه مشخص نشده است، پوسته
· می خواند ~/.yashrc به عنوان پیش فرض اگر در حالت POSIXly-correct نباشد. یا
· بسط پارامتر را بر روی مقدار the انجام می دهد ENV متغیر محیطی و
نتیجه گسترش را به عنوان نام فایل در نظر می گیرد تا در صورت وجود آن، آن را بخواند
حالت POSIXly-correct.
توجه داشته باشید:
یاش هرگز به طور خودکار نمی خواند / etc / profile، /etc/yashrc، نه of /. پروفایل
نحو
پوسته خط به خط فرمان را می خواند، تجزیه می کند و اجرا می کند. اگر بیش از یکی باشد
دستور روی یک خط، تمام دستورات قبل از اجرا تجزیه می شوند. اگر دستوری ادامه یابد
در خطوط بعدی، پوسته خطوط بیشتری را برای تکمیل فرمان می خواند. روی یک نحو
خطا، پوسته هیچ فرمان دیگری را نه می خواند و نه اجرا می کند.
نشانه و کلید واژه ها
یک فرمان از یک یا چند نشانه تشکیل شده است. در نحو پوسته، a رمز کلمه ای است که
بخشی از یک فرمان است به طور معمول، توکن ها با فاصله های سفید، یعنی فاصله یا
کاراکتر برگه فضاهای خالی در یک جایگزین دستور یا یک بسط پارامتر،
با این حال، توکن ها را از هم جدا نکنید.
نمادهای زیر در نحو پوسته معانی خاصی دارند و در بیشتر موارد جدا هستند
نشانه ها:
; & | < > ( ) [خط جدید]
نمادهای زیر نشانه ها را از هم جدا نمی کنند، اما دارای معانی نحوی هستند:
$ ` \ " ' * ? [ # ~ = %
توکن های زیر به عنوان تلقی می شوند کلید واژه ها بسته به زمینه ای که در آن قرار دارند
به نظر می رسد:
! { } مورد انجام شد elif else esac fi
برای تابع اگر در سپس تا زمانی که
یک نشانه زمانی به عنوان یک کلمه کلیدی در نظر گرفته می شود:
· این اولین نشانه یک فرمان است،
· از کلمه کلیدی دیگری پیروی می کند (به جز مورد, برایو in)، یا
· این یک نشانه غیر اول از یک دستور است و قرار است یک کلمه کلیدی برای نوشتن یک دستور باشد.
دستور مرکب
اگر نشانه ای با #، سپس # و هر کاراکتر زیر تا انتهای
خط به عنوان یک رفتار می شود توضیح، که در تجزیه نحوی کاملاً نادیده گرفته می شود.
نقل قول ها
اگر میخواهید فضاهای خالی، کاراکترهای جداکننده یا کلمات کلیدی که در بالا توضیح داده شد، مورد بررسی قرار گیرند
به عنوان یک کاراکتر معمولی، باید کاراکترها را با استفاده از علامت نقل قول مناسب نقل قول کنید.
گیومه ها به عنوان کاراکترهای معمولی تلقی نمی شوند مگر اینکه خودشان نقل قول شده باشند.
می توانید از سه علامت نقل قول زیر استفاده کنید:
· اسلش معکوس (\) شخصیتی را نقل می کند که بلافاصله بعد از آن می آید.
تنها استثناء در مورد بک اسلش موردی است که پس از بک اسلش با a دنبال شود
خط جدید. در این مورد، با دو شخصیت به عنوان یک رفتار می شود خط ادامه نسبتا
از یک خط جدید نقل شده است. دو کاراکتر از ورودی و این دو حذف می شوند
خطوط اطراف ادامه خط به یک خط منفرد متصل می شوند.
· یک جفت علامت نقل قول تکی (') هر کاراکتر بین آنها را نقل قول کنید به جز دیگری
تک نقل قول توجه داشته باشید که خطوط جدید را می توان با استفاده از نقل قول تک نقل قول کرد.
· علامت نقل قول دوگانه (") مانند یک نقل قول هستند، اما چند استثنا دارند:
بسط پارامتر، جایگزینی دستور، و بسط حسابی به عنوان تفسیر می شوند
معمولی حتی بین دو نقل قول. یک بک اسلش بین دو نقل قول انجام می شود
به عنوان علامت نقل قول تنها زمانی که به دنبال آن باشد $, `, ", \، یا یک خط جدید؛ دیگر
اسلش های معکوس به عنوان کاراکترهای معمولی در نظر گرفته می شوند.
نام مستعار
نشانه هایی که دستوری را می سازند مشمول آن هستند نام مستعار جایگزینی. نشانه ای که مطابقت دارد
نام مستعار که قبلاً تعریف شده است با مقدار نام مستعار جایگزین می شود
قبل از اینکه دستور تجزیه شود
نشانه هایی که حاوی نقل قول هستند، جایگزین نام مستعار نمی شوند زیرا نام مستعار نمی تواند
حاوی علامت نقل قول کلمات کلیدی و کاراکترهای جداکننده دستور نیستند
alias-substituted or.
دو نوع نام مستعار وجود دارد: نام مستعار معمولی و مستعار جهانی. آ طبیعی نام مستعار تنها می تواند
اولین نشانه یک دستور را جایگزین کنید در حالی که a جهانی نام مستعار می تواند هر بخشی از a را جایگزین کند
فرمان نام مستعار جهانی پسوند yash است که در POSIX تعریف نشده است.
اگر یک رمز با مقدار نام مستعار معمولی که با a ختم می شود جایگزین شود
فضای خالی، نشانه بعدی به طور استثنایی در معرض جایگزینی نام مستعار با عادی است
نام مستعار
نتایج جایگزینی نام مستعار مجدداً مشمول جایگزینی نام مستعار برای غیر است
نام مستعار (اما نه برای نام های مستعار که قبلاً اعمال شده اند).
می توانید با استفاده از نام مستعار داخلی، نام مستعار را تعریف کنید و با استفاده از نام مستعار داخلی آن را حذف کنید.
ساده دستورات
دستوری که با رمز کلیدواژه شروع نمی شود a است ساده فرمان. دستورات ساده
همانطور که در اجرای دستورات ساده تعریف شده است اجرا می شوند.
اگر اولین و تعدادی از نشانه های زیر یک دستور ساده دارای فرم باشند
نام=ارزش، آنها به عنوان تخصیص متغیر تفسیر می شوند. نام متغیر باید شامل
یک یا چند الفبا، رقم و/یا خط زیر (_) و نباید با یک رقم شروع شود. در
اولین نشانه ای که یک انتساب متغیر نیست به عنوان نام دستور در نظر گرفته می شود و تمام موارد
توکن های زیر (چه فرم را داشته باشند یا نداشته باشند نام=ارزش) به عنوان آرگومان های فرمان.
انتساب متغیر فرم VAR=(نشانه) به عنوان انتساب به یک آرایه تفسیر می شود.
شما می توانید هر تعداد نشانه را بین یک جفت پرانتز بنویسید. توکن ها را می توان جدا کرد
نه تنها با فاصله ها و تب ها، بلکه با خطوط جدید.
خطوط لوله
A خط لوله دنباله ای از یک یا چند دستور ساده، دستورات مرکب و/یا است
تعاریف تابعی که توسط |.
خط لوله ای که بیش از یک دستور فرعی دارد با اجرای هر یک از دستورات فرعی اجرا می شود.
خط لوله در یک زیر پوسته به طور همزمان. خروجی استاندارد هر دستور فرعی به جز
آخرین مورد به ورودی استاندارد دستور فرعی بعدی هدایت می شود. استاندارد
ورودی اولین فرمان فرعی و خروجی استاندارد آخرین فرمان فرعی نیست
هدایت شد. وضعیت خروج خط لوله وضعیت آخرین فرمان فرعی است.
یک خط لوله را می توان با پیشوند تعیین کرد !، در این صورت وضعیت خروج خط لوله است
معکوس: وضعیت خروج خط لوله 1 است اگر آخرین فرمان فرعی 0 باشد و 0
در غیر این صورت.
توجه داشته باشید:
وقتی اجرای یک خط لوله به پایان می رسد، حداقل اجرای آخرین
فرمان فرعی به پایان رسیده است زیرا وضعیت خروج آخرین فرمان فرعی آن را تعریف می کند
کل خط لوله با این حال، اجرای سایر دستورات فرعی ممکن است به پایان نرسیده باشد
سپس. از سوی دیگر، اجرای خط لوله ممکن است به زودی پس از آن تمام نشود
آخرین دستور فرعی تمام شد زیرا ممکن است پوسته منتظر اجرا بماند
از دیگر دستورات فرعی برای اتمام.
توجه داشته باشید:
استاندارد POSIX اجازه می دهد تا هر یک از دستورات فرعی را در پوسته فعلی اجرا کنید
از زیر پوسته ها، هر چند yash این کار را نمی کند.
و / یا liste
An و / یا فهرست دنباله ای از یک یا چند خط لوله است که توسط && or ||.
یک و/یا لیست با اجرای برخی از خطوط لوله به صورت مشروط اجرا می شود. اولین
خط لوله همیشه اجرا می شود. خطوط لوله دیگر یا اجرا می شوند یا اجرا نمی شوند
با توجه به وضعیت خروج خطوط لوله قبلی.
· اگر دو خط لوله توسط && و وضعیت خروجی خط لوله اول است
صفر، خط لوله دوم اجرا می شود.
· اگر دو خط لوله توسط || و وضعیت خروج از خط لوله اول نیست
صفر، خط لوله دوم اجرا می شود.
· در موارد دیگر، اجرای لیست و/یا به پایان می رسد: دومین و هر باقیمانده
خطوط لوله اجرا نمی شود
وضعیت خروج از یک و/یا لیست آخرین خط لوله ای است که اجرا شده است.
به طور معمول، یک و/یا لیست باید با یک نقطه ویرگول، علامت علامت، یا خط جدید خاتمه یابد. دیدن
جداکننده های فرمان و دستورات ناهمزمان.
فرمان جداکننده ها و ناهمگام دستورات
کل ورودی پوسته باید از هر تعداد و/یا لیستی تشکیل شده باشد که با a جدا شده اند
نقطه ویرگول یا علامت. نقطه ویرگول پایانی را می توان حذف کرد اگر دنبال آن باشد ;;, ),
یا خط جدید در غیر این صورت، یک و/یا لیست باید با یک نقطه ویرگول یا علامت خاتمه شود.
اگر لیست و/یا با نقطه ویرگول خاتمه یابد، به صورت همزمان اجرا می شود: پوسته
منتظر می ماند تا لیست و/یا قبل از اجرای لیست بعدی و/یا به پایان برسد. اگر یک و/یا
لیست با یک علامت خاتمه می یابد، به صورت ناهمزمان اجرا می شود: پس از اجرای
و/یا لیست شروع می شود، لیست بعدی و/یا بلافاصله اجرا می شود. ناهمزمان
و/یا لیست همیشه در یک زیر پوسته اجرا می شود و وضعیت خروج آن صفر است.
اگر پوسته کنترل کار را انجام نمی دهد، ورودی استاندارد یک لیست ناهمزمان و/یا
به طور خودکار به /dev/null هدایت می شود. کنترل کننده سیگنال و/یا لیست برای
سیگنال های SIGINT و SIGQUIT به گونه ای تنظیم شده اند که سیگنال را "نادیده بگیرند" به طوری که اجرای
و/یا لیست را نمی توان با آن سیگنال ها متوقف کرد. (در حالت POSIXly-correct، استاندارد
ورودی تغییر مسیر داده می شود اگر و تنها در صورتی که پوسته تعاملی باشد، صرف نظر از اینکه آیا کار
کنترل روشن است علاوه بر این، سیگنالهای SIGINT و SIGQUIT نادیده گرفته میشوند، حتی اگر کنترل کار باشد
بر.)
هنگامی که اجرای یک لیست ناهمزمان و/یا شروع می شود، پوسته آن را به خاطر می آورد
شناسه فرآیند شما می توانید شناسه را با مراجعه به ! پارامتر خاص می توانید بدست آورید
وضعیت فعلی و خروجی لیست ناهمزمان را نیز با استفاده از کارها و صبر کنید
ساخته شده است.
ترکیب دستورات
دستورات مرکب کنترل برنامه ای اجرای دستورات پوسته را در اختیار شما قرار می دهند.
گروه بندی
گروه بندی لیستی از دستورات است که به عنوان یک دستور ساده در نظر گرفته می شود.
نحو گروه بندی عادی
{ فرمان... }
نحو گروه بندی زیر پوسته
(فرمان...)
La { و } توکن ها کلمات کلیدی هستند که باید از سایر نشانه ها جدا شوند. در ( و
) اما توکن ها جداکننده های خاصی هستند که نیازی به جداسازی ندارند.
در دستورات گروه بندی معمولی، دستورات یک گروه بندی در جریان جاری اجرا می شوند
پوسته. در نحو گروه بندی زیر پوسته، دستورات در یک زیر پوسته جدید اجرا می شوند.
در حالت POSIXly-correct، یک گروه بندی باید حداقل یک دستور داشته باشد. اگر
پوسته در حالت POSIXly-correct نیست، یک گروه بندی ممکن است حاوی هیچ دستوری نباشد.
وضعیت خروج از گروه بندی آخرین فرمان در گروه بندی است. اگر
گروه بندی هیچ فرمانی ندارد، وضعیت خروج آن آخرین فرمان اجرا شده است
قبل از گروه بندی
If فرمان
دستور if یک شاخه شرطی را انجام می دهد.
دستور اولیه if
if شرط... سپس بدن... fi
نحو با عبارت else
if شرط... سپس بدن... دیگر بدن... fi
نحو با عبارت elif
if شرط... سپس بدن... الیف شرط... سپس بدن... fi
نحو با عبارت elif
if شرط... سپس بدن... الیف شرط... سپس بدن... دیگر بدن... fi
برای همه نحوها، اجرای دستور if با اجرای the شروع می شود
شرط دستوراتی که از if نشانه اگر وضعیت خروج از شرط
دستورات صفر است، شرط به عنوان "درست" در نظر گرفته می شود. در این مورد، بدن
دستوراتی که از سپس توکن اجرا می شود و دستور if اجرا می شود
به پایان می رسد. اگر وضعیت خروج از دستورات شرط غیر صفر باشد، شرط است
به عنوان "کاذب" در نظر گرفته شده است. در این مورد، شرط دستورات برای عبارت elif بعدی
اجرا می شوند و وضعیت خروج به همان روش بالا تست می شود. اگر وجود ندارد
الف بند، بدن دستوراتی که از دیگر توکن اجرا می شوند و
اجرای دستور if به پایان می رسد. اگر بند دیگری نیز وجود نداشته باشد، اجرا
از دستور if فقط به پایان می رسد.
یک فرمان if ممکن است بیش از یک عبارت elif-then داشته باشد.
وضعیت خروج از یک فرمان if همان است بدن دستوراتی که اجرا شد در
اگر نه، وضعیت خروج صفر است بدن دستورات اجرا شد، یعنی تمام شرایط
نادرست بود و هیچ بند دیگری وجود نداشت.
در حالی که و تا حلقه ها
حلقه while و while حلقه های ساده با شرط هستند.
در حالی که نحو حلقه
در حین شرط... do بدن... انجام شده
تا نحو حلقه
تا شرط... do بدن... انجام شده
اگر پوسته در حالت POSIXly-correct نیست، می توانید آن را حذف کنید شرط و / یا
بدن دستورات یک حلقه while/until.
اجرای حلقه while با اجرای آن شروع می شود شرط دستورات اگر
وضعیت خروج از شرط دستورات صفر است، پوسته آن را اجرا می کند بدن دستورات
و به اجرای آن برمی گردد شرط دستورات در شرط و بدن
دستورات به طور مکرر اجرا می شوند تا زمانی که وضعیت خروج از شرط دستورات است
غیر صفر
توجه داشته باشید:
La بدن در صورت اجرای اول دستورات اصلا اجرا نمی شوند شرط
دستورات وضعیت خروج غیر صفر را به دست می دهد.
یک حلقه while به همان شیوه حلقه while اجرا می شود با این تفاوت که شرط
برای تکرار حلقه معکوس می شود: the بدن دستورات زمانی اجرا می شوند که وضعیت خروج از
la شرط دستورات غیر صفر است
وضعیت خروج از یک حلقه while/until آخرین مورد اجرا شده است بدن فرمان دادن
وضعیت خروج صفر است اگر بدن دستورات خالی هستند یا اصلا اجرا نشده اند.
برای حلقه
حلقه for دستورات را با متغیری که یکی از مقادیر داده شده را در هر کدام اختصاص داده است، تکرار می کند
گرد
برای نحو حلقه
برای نام متغیر in کلمه... do فرمان... انجام شده برای نام متغیر do فرمان... انجام شده
La کلمه لیست بعد از in نشانه ممکن است خالی باشد، اما نقطه ویرگول (یا خط جدید) قبل از آن
la do توکن حتی در آن صورت مورد نیاز است. در کلمهs به عنوان کلمات کلیدی در نظر گرفته نمی شوند، اما
شما باید کاراکترهای جداکننده را نقل قول کنید (مانند & و |) شامل کردن آنها به عنوان بخشی از a
کلمه. اگر شما را حذف کنید in نشانه و موارد زیر کلمهs، شما همچنین باید حذف کنید
نقطه ویرگول قبل از do نشانه با این حال، پوسته در مورد شکایت نیست
وجود نقطه ویرگول اگر در حالت POSIXly-correct نباشد. در فرمان لیست ممکن است
اگر در حالت POSIXly-correct نباشد خالی است.
La نام متغیر باید یک نام قابل حمل (فقط ASCII) در حالت POSIXly-correct باشد.
اجرای یک حلقه for با گسترش دادن شروع می شود کلمهs به همان شیوه ای که در
اجرای یک دستور ساده اگر in و کلمه توکن ها حذف می شوند، پوسته
فرض می کند کلمه نشانه هایی برای بودن "$@". در مرحله بعد، مراحل زیر برای هر کلمه انجام می شود
گسترده شد (به ترتیب کلمات بسط شد):
1. کلمه را به متغیری که نام آن است اختصاص دهید نام متغیر.
2. اجرا کنید فرمانs.
هر کلمه به عنوان یک متغیر محلی به جز در حالت POSIXly-correct اختصاص داده می شود. اگر
گسترش کلمهدر نتیجه هیچ کلمه ای در بر نداشت فرمانs در اجرا نمی شوند
همه.
وضعیت خروج از یک حلقه for آخرین مورد اجرا شده است فرمان. وضعیت خروج است
صفر اگر فرمانs خالی نیستند و اصلا اجرا نمی شوند. اگر فرمانخالی هستند،
وضعیت خروج آخرین فرمان اجرا شده قبل از حلقه for است.
مورد فرمان
دستور case یک تطبیق الگو را برای انتخاب دستورات برای اجرا انجام می دهد.
نحو دستور موردی
مورد کلمه in مورد... که C
نحو مورد
(الگوهای) فرمان...;;
La کلمه بین مورد و in نشانه ها باید دقیقاً یک کلمه باشند. در کلمه نیست
به عنوان یک کلمه کلیدی در نظر گرفته می شود، اما شما باید کاراکترهای جداکننده را نقل قول کنید (مانند & و |) به
آنها را به عنوان بخشی از کلمه. بین in و که C توکن هایی که می توانید هر کدام را قرار دهید
تعداد موارد پرونده (ممکن است هیچ کدام نباشد). می توانید اولی را حذف کنید ( نشانه یک مورد و
آخرین ;; نشانه قبل از که C نشانه اگر آخرین فرمان از یک مورد است
با نقطه ویرگول خاتمه می یابد، می توانید نقطه ویرگول را نیز حذف کنید. در فرماندر یک مورد
ممکن است مورد خالی باشد
La الگوهای در یک آیتم یک یا چند نشانه هستند که هر کدام با a از هم جدا شده اند | نشانه
اجرای دستور case با قرار دادن آن شروع می شود کلمه به چهار
بسط ها در مرحله بعد، مراحل زیر برای هر مورد (به ترتیب
ظاهر):
1. برای هر کلمه در الگوهای، کلمه را به همان صورت بسط دهید کلمه و
تست کنید که آیا الگوی گسترش یافته با کلمه گسترش یافته مطابقت دارد یا خیر. (اگر الگوی پیدا شد
که با کلمه مطابقت داشته باشد، الگوهای باقیمانده بسط و آزمایش نشده اند، بنابراین برخی
از الگوهای ممکن است گسترش نیابد یاش الگوهای موجود را گسترش داده و آزمایش می کند
ترتیب ظاهر، اما ممکن است برای سایر پوسته ها اینطور نباشد.)
2. اگر یکی از الگوهای مطابقت پیدا شد کلمه در مرحله قبل،
فرماندر این مورد آیتم اجرا می شود و کل آیتم مورد اجرا می شود
به پایان می رسد. در غیر این صورت، به مورد بعدی بروید.
وضعیت خروج از یک فرمان موردی است فرماناعدام شد وضعیت خروج است
صفر اگر نه فرمانs اجرا شدند، یعنی هیچ موردی وجود نداشت، هیچ تطبیقی وجود نداشت
الگوی پیدا شد، یا هیچ فرمانی با الگوی منطبق مرتبط نبود.
در حالت POSIXly-correct، اولین الگوی یک مورد نمی تواند باشد که C (حتی اگر
شما از قلم نیندازید ( نشانه).
عملکرد تعریف
دستور تعریف تابع یک تابع را تعریف می کند.
نحو تعریف توابع
نام تابع ( ) ترکیب_فرمانتابع نام تابع ترکیب_فرمانتابع نام تابع ( )
ترکیب_فرمان
در نحو اول بدون تابع کلمه کلیدی، نام تابع نمی تواند حاوی هیچ خاصی باشد
کاراکترهایی مانند نقطه ویرگول و علامت نقل قول. در نحو دوم و سوم که
نمی توان در حالت POSIXly-correct استفاده کرد، نام تابع در معرض چهار بسط است
هنگام اجرا در حالت POSIXly-correct، نام تابع محدود به یک قابل حمل است (فقط ASCII)
نام.
هنگامی که یک فرمان تعریف تابع اجرا می شود، تابعی که نام آن است نام تابع is
با وجود بدنش تعریف شده است ترکیب_فرمان.
دستور تعریف تابع را نمی توان مستقیماً هدایت کرد. هر تغییر مسیری که به دنبال آن باشد
یک تعریف تابع همراه است ترکیب_فرمان به جای کل عملکرد
دستور تعریف که در func() { گربه } > / dev / nullمثلاً اینطور نیست func() { گربه }
اما { گربه } که هدایت می شود.
اگر تابع بدون تعریف شده باشد، وضعیت خروج از تعریف تابع صفر است
خطاها و در غیر این صورت غیر صفر.
پارامترهای و متغیرها
پارامترهای مقادیر رشته ای هستند که در بسط پارامتر گسترش می یابند. سه تا هستند
انواع پارامترها: پارامترهای موقعیتی، پارامترها و متغیرهای خاص.
موضعی پارامترهای
موضعی پارامترهای پارامترهایی هستند که با اعداد طبیعی مشخص می شوند. اگر وجود دارد
سه پارامتر موقعیتی، به عنوان مثال، آنها به عنوان شناسایی می شوند 1, 2و 3. شما می توانید
به دست آوردن تعداد پارامترهای موقعیتی توسط # پارامتر خاص در * و @ ویژه
پارامترها به تمام پارامترهای موقعیتی گسترش می یابند.
پارامترهای موقعیت از آرگومان های خط فرمان پوسته زمانی که
پوسته شروع شده است (به آرگومان های خط فرمان مراجعه کنید). در مقداردهی اولیه، ترتیب از
عملوندها به عنوان ترتیب پارامترهای موقعیتی حفظ می شوند.
هنگامی که پوسته یک فراخوانی تابع را اجرا می کند، پارامترهای موقعیتی به عدد تغییر می کنند
آرگومان های فراخوانی تابع به طوری که شما بتوانید در حالی که تابع است به آرگومان ها دسترسی داشته باشید
در حال اعدام شدن پارامترهای موقعیت زمانی به مقادیر اصلی بازیابی می شوند
اجرای تابع به پایان رسیده است.
پارامترهای موقعیت را می توان با دستورات داخلی مانند set و shift دستکاری کرد.
توجه داشته باشید که 0 یک پارامتر موقعیتی نیست بلکه یک پارامتر خاص است.
ویژه پارامترهای
ویژه پارامترهای پارامترهایی هستند که هر کدام با یک نماد مشخص می شوند. آنها نمی توانند باشند
مستقیماً توسط کاربر به آن اختصاص داده شده است.
Yash پارامترهای ویژه زیر را ارائه می دهد:
0
نام فایل اجرایی پوسته یا فایل اسکریپت که در آن مشخص شده است
فراخوانی پوسته
#
تعداد پارامترهای موقعیت فعلی. مقدار یک عدد صحیح غیر منفی است.
$
شناسه فرآیند پوسته. مقدار یک عدد صحیح مثبت است و هرگز حتی تغییر نمی کند
در زیر پوسته ها
-
گزینه های پوسته در حال حاضر فعال هستند. مقدار ترکیبی از حروف الفبا است
که نام گزینه های تک نویسه فعال فعلی هستند که می توان آنها را مشخص کرد
در فراخوانی پوسته زمانی که یا را فعال میکنید، مقدار تغییرات گزینههای فعال را نشان میدهد
با استفاده از مجموعه داخلی، گزینه ها را غیرفعال کنید.
?
وضعیت خروج آخرین خط لوله اجرا شده. مقدار یک عدد صحیح غیر منفی است.
!
شناسه فرآیند آخرین لیست ناهمزمان اجرا شده.
*
این پارامتر ویژه کل پارامترهای موقعیتی را نشان می دهد. وقتی وجود ندارد
پارامترهای موقعیتی، مقدار این پارامتر ویژه رشته خالی است. چه زمانی
بیش از یک پارامتر موقعیتی وجود دارد، مقدار ترکیبی از تمام پارامترها است
پارامترهای موقعیتی که هر کدام به صورت زیر جدا می شوند:
· اگر IFS متغیر وجود دارد و مقدار آن خالی نیست، پارامترهای موقعیتی هستند
هر کدام با اولین کاراکتر مقدار the جدا می شوند IFS متغیر.
· اگر IFS متغیر وجود دارد و دارای یک مقدار خالی است، پارامترهای موقعیتی فقط هستند
بدون هیچ جداکننده به هم پیوسته است.
· اگر IFS متغیر وجود ندارد، پارامترهای موقعیتی هر کدام با a جدا می شوند
شخصیت فضایی
@
این پارامتر ویژه کل پارامترهای موقعیتی را نشان می دهد * ویژه
پارامتر بالا تفاوت این دو در نتایج گسترش است که
بین یک جفت علامت نقل قول دوتایی رخ می دهد. اگر @ پارامتر خاص است
بسط داده شده در دو نقل قول، پارامترهای موقعیتی به جای تقسیم میدان هستند
به هم پیوسته (با وجود نقل قول). اگر هیچ پارامتر موقعیتی وجود نداشته باشد،
بسط به جای یک کلمه خالی، هیچ کلمه ای را به همراه ندارد.
· هنگامی که هیچ پارامتر موقعیتی وجود ندارد، کلمات فرمان از دست 1 "$@" 2 is
به سه کلمه گسترش یافت از دست, 1و 2.
· وقتی پارامترهای موقعیتی سه کلمه هستند 1, 2 2و 3، کلمات دستوری
از دست "$@" به چهار کلمه بسط می یابد از دست, 1, 2 2و 3، و کلمات از دست
"a$@b" به چهار کلمه از دست, a1, 2 2و 3b.
متغیر
متغیر پارامترهایی هستند که کاربر می تواند مقادیری را به آنها اختصاص دهد. هر متغیر یک نام دارد که
آن را مشخص می کند و مقداری که نتایج بسط را مشخص می کند.
نام متغیر از یک یا چند کاراکتر الفبایی عددی و زیرخط تشکیل شده است (_).
نام نمی تواند با یک رقم شروع شود. کاراکترهای دیگر ممکن است در یک نام بسته به این مورد استفاده شوند
حمایت بین المللی از محیط شما
متغیرهایی که به دستورات خارجی صادر می شوند نامیده می شوند محیط متغیرها. آنها
به تمام دستورات خارجی که پوسته فراخوانی می کند منتقل می شود. متغیرها به پوسته در منتقل شدند
فراخوان به طور خودکار صادر می شود.
شما می توانید با یک دستور ساده و همچنین تایپت داخلی به متغیرها اختصاص دهید. تو می توانی
با استفاده از تنظیمات داخلی داخلی، متغیرها را حذف کنید.
متغیر استفاده by la صدف
متغیرهای زیر توسط پوسته برای اهداف خاص استفاده می شوند.
CDPATH
این متغیر توسط cd داخلی برای یافتن دایرکتوری مقصد استفاده می شود.
ستون ها
این متغیر عرض (تعداد ستون های کاراکتر) را مشخص می کند
صفحه ترمینال این مقدار بر نمایش ویرایش خط تأثیر می گذارد.
COMMAND_NOT_FOUND_HANDLER
هنگامی که پوسته نمی تواند دستوری را برای اجرا پیدا کند، مقدار این متغیر است
به جای آن تفسیر و اجرا شد. می توانید مدیریت خطای پوسته را لغو کنید
رفتار با این متغیر برای جزئیات بیشتر به اجرای دستورات ساده مراجعه کنید.
این ویژگی در حالت POSIXly-correct غیرفعال است.
DIRSTACK
این متغیر آرایه توسط پوسته برای ذخیره محتویات پشته دایرکتوری استفاده می شود. اگر
اگر مقدار این متغیر را تغییر دهید، ممکن است پشته دایرکتوری خراب شده باشد.
ECHO_STYLE
این متغیر رفتار پژواک داخلی را مشخص می کند.
ENV
هنگامی که یک پوسته تعاملی در حالت POSIXly-correct شروع می شود، مقدار
این متغیر برای یافتن فایل اولیه استفاده می شود. به مقداردهی یاش مراجعه کنید.
FCEDIT
این متغیر یک برنامه ویرایشگر را مشخص می کند که برای ویرایش خطوط فرمان در طول مدت استفاده می شود
اجرای fc داخلی.
رسیدگی می شود
این متغیر را می توان در کنترل کننده command-not-found تنظیم کرد تا به پوسته بگوید این کار را انجام ندهد
یک پیغام خطای بیشتر ایجاد کنید. برای جزئیات بیشتر به اجرای دستورات ساده مراجعه کنید.
HISTFILE
این متغیر نام مسیر فایل را برای ذخیره تاریخچه دستور در آن مشخص می کند.
HISTRMDUP
این متغیر تعداد آیتم های تاریخچه فرمان را که باید بررسی شوند را مشخص می کند
تکثیر. مضاعف شدن. هنگامی که پوسته یک آیتم تاریخچه جدید را به تاریخچه فرمان اضافه می کند،
اگر برخی از جدیدترین n اقلام دارای محتویات مشابه با موارد جدید هستند، سپس
موارد تکراری موجود قبل از اضافه شدن موارد جدید از تاریخچه حذف می شوند.
جایی که n مقدار این متغیر است.
اگر مقدار این متغیر باشد 1به عنوان مثال، آخرین مورد حذف می شود
هنگامی که یک آیتم جدید با محتوای یکسان اضافه می شود.
اقلام قدیمی تر از nمورد اخیر حذف نشده است. هیچ موردی حذف نمی شود اگر
مقدار این متغیر است 0. در صورت وجود متغیر، همه موارد حذف می شوند
مقدار بزرگتر یا مساوی با مقدار است HISTSIZE متغیر.
HISTSIZE
این متغیر حداکثر تعداد موارد را در تاریخچه دستورات مشخص می کند.
صفحه اصلی
این متغیر نام مسیر دایرکتوری اصلی کاربر را مشخص می کند و تأثیر می گذارد
نتایج گسترش tilde و cd داخلی.
IFS
این متغیر جداکننده های مورد استفاده در تقسیم فیلد را مشخص می کند. مقدار متغیر است
زمانی که
پوسته شروع شده است.
زبان, LC_ALL, LC_COLLATE, LC_CTYPE, LC_MESSAGES, LC_MONETARY, LC_NUMERIC, LC_TIME
این متغیرها محلی را مشخص می کنند که پوسته در آن اجرا می شود. پوسته را انتخاب می کند
کدگذاری ورودی/خروجی فایل، زبان پیام خطا و غیره مطابق با
محل مشخص شده است.
مگر اینکه پوسته تعاملی باشد و در حالت POSIXly-correct نباشد، مقدار
la LC_CTYPE متغیر تنها زمانی در نظر گرفته می شود که پوسته شروع به کار کند. یک بار پوسته
مقداردهی اولیه شده است LC_CTYPE هیچ تاثیری در
رفتار پوسته
LINENO
مقدار این متغیر به طور خودکار به شماره خطی که در آن است تنظیم می شود
دستور اجرا شده در حال حاضر در فایل ظاهر می شود.
در پوسته تعاملی، هر بار که پوسته می خواند، شماره خط به 1 بازنشانی می شود
و دستوری را اجرا می کند.
اگر به این متغیر اختصاص دهید یا حذف کنید، دیگر شماره خطوط را ارائه نمی دهد.
LINES
این متغیر ارتفاع (تعداد خطوط کاراکتر) ترمینال را مشخص می کند
صفحه نمایش این مقدار بر نمایش ویرایش خط تأثیر می گذارد.
این متغیر نام مسیر فایلی را که در بررسی ایمیل بررسی می شود را مشخص می کند.
چک پستی
این متغیر مشخص می کند که پوسته چند وقت یکبار باید ایمیل را چک کند. ارزش دارد
به عنوان یک عدد صحیح مثبت در ثانیه مشخص شود. مقدار به مقدار اولیه می شود
مقدار پیش فرض 600 هنگامی که پوسته شروع می شود.
MAILPATH
این متغیر نام مسیر فایل هایی را که در بررسی ایمیل بررسی می شوند را مشخص می کند.
nlspath
استاندارد POSIX تجویز می کند که مقدار این متغیر نام مسیر را مشخص می کند
قالب فایل های داده پیام وابسته به محلی است، اما yash از آن استفاده نمی کند.
OLDPWD
این متغیر در مسیر تغییر دایرکتوری کاری قبلی تنظیم می شود
دایرکتوری کار با استفاده از سی دی یا داخلی های دیگر. این متغیر توسط صادر می شود
به طور پیش فرض
OPTARG
هنگامی که getopts داخلی گزینه ای را که آرگومان می گیرد، تجزیه می کند
مقدار به این متغیر اختصاص داده شده است.
OPTIND
مقدار این متغیر شاخص گزینه ای را که قرار است تجزیه شود را مشخص می کند
توسط getopts بعدی اجرا داخلی. این متغیر به مقدار دهی اولیه می شود 1 وقتی که
پوسته شروع شده است.
PATH
این متغیر مسیرهایی را مشخص می کند که برای یک فرمان در جستجوی فرمان جستجو می شوند.
PPID
مقدار این متغیر، شناسه فرآیند پروسه والد پوسته است که
یک عدد صحیح مثبت است. این متغیر هنگام راه اندازی پوسته مقداردهی اولیه می شود. در
هنگامی که پوسته یک زیرشل جدید ایجاد می کند، مقدار تغییر نمی کند.
PROMPT_COMMAND
پوسته مقدار این متغیر را قبل از چاپ هر کدام تفسیر و اجرا می کند
اگر پوسته تعاملی باشد و در حالت POSIXly-correct نباشد، خط فرمان.
این رفتار معادل اجرای دستور است ارزیابی -i --
"${PROMPT_COMMAND-}" قبل از هر خط فرمان، اما وضعیت خروج آن نیست
بر گسترش تاثیر می گذارد ? پارامتر ویژه در دستور بعدی.
PS1
این متغیر رشته خط فرمان اصلی چاپ شده توسط یک تعاملی را مشخص می کند
پوسته. برای فرمت مقدار متغیر به دستورات مراجعه کنید. مقدار مقدار دهی اولیه می شود
به \$ هنگامی که پوسته شروع می شود. (در حالت POSIXly-correct، مقدار اولیه
است یا $ or # بسته به اینکه آیا شناسه کاربر موثر فرآیند پوسته است
صفر است یا نه.)
PS1R
این متغیر رشته اعلان کمکی چاپ شده در سمت راست را مشخص می کند
هنگامی که یک خط فرمان را به یک پوسته تعاملی وارد می کنید، مکان نما را نشان می دهد. به دستورات مربوطه مراجعه کنید
فرمت مقدار متغیر
PS1S
این متغیر سبک قلم رشته های دستوری را که وارد می کنید مشخص می کند
پوسته تعاملی برای فرمت مقدار متغیر به دستورات مراجعه کنید.
PS2
این متغیر مانند PS1 متغیر است، اما برای دوم و استفاده می شود
خطوط زیر یک فرمان که بیشتر از یک خط است. به دستورات مربوطه مراجعه کنید
فرمت مقدار متغیر مقدار به مقدار اولیه است > هنگامی که پوسته است
آغاز شده.
PS2R
این متغیر مانند PS1R متغیر است، اما زمانی استفاده می شود PS2 استفاده می شود. دیدن
فرمت مقدار متغیر را درخواست می کند.
PS2S
این متغیر مانند PS1S متغیر است، اما زمانی استفاده می شود PS2 استفاده می شود. دیدن
فرمت مقدار متغیر را درخواست می کند.
PS4
مقدار این متغیر قبل از هر خروجی ردیابی فرمان چاپ می شود
گزینه xtrace فعال است. مقدار تابع بسط پارامتر، فرمان است
جایگزینی، بسط حسابی. همچنین میتوانید از نمادهای بک اسلش استفاده کنید
پوسته در حالت POSIXly-correct نیست. مقدار به مقدار اولیه است + وقتی که
پوسته شروع شده است.
PS4S
این متغیر مانند PS1S متغیر است، اما زمانی استفاده می شود PS4 استفاده می شود. تو می توانی
از این متغیر برای تغییر سبک فونت خروجی ردیابی فرمان استفاده کنید.
PWD
مقدار این متغیر نام مسیر دایرکتوری فعلی است. در
مقدار زمانی تنظیم می شود که پوسته راه اندازی می شود و هر بار دایرکتوری کاری بازنشانی می شود
توسط سی دی یا داخلی های داخلی دیگر تغییر می کند. این متغیر به صورت پیش فرض صادر می شود.
تصادفی
می توانید از این متغیر برای بدست آوردن اعداد تصادفی استفاده کنید. مقدار این متغیر a است
عدد صحیح تصادفی یکنواخت بین 0 و 32767 (شامل) توزیع شده است. دریافت خواهید کرد
هر بار که متغیر بزرگ می شود یک عدد متفاوت است.
شما می توانید "seed" اعداد تصادفی را با اختصاص یک عدد صحیح غیر منفی به
متغیر
اگر این متغیر را حذف کنید، دیگر به عنوان یک تولید کننده اعداد تصادفی کار نخواهد کرد.
اگر پوسته در حالت POSIXly-correct فراخوانی شده باشد، این متغیر کار نمی کند
به عنوان یک مولد اعداد تصادفی
مدت
این متغیر نوع پایانه ای را که پوسته در آن اجرا می شود را مشخص می کند.
مقدار بر رفتار ویرایش خط تأثیر می گذارد.
YASH_AFTER_CD
پوسته مقدار این متغیر را بعد از هر بار تفسیر و اجرا می کند
دایرکتوری کاری شل توسط سی دی یا داخلی های داخلی دیگر تغییر می کند. این رفتار
معادل اجرای دستور است ارزیابی -i -- "${YASH_AFTER_CD-}" بعد از
دایرکتوری تغییر کرد
YASH_LOADPATH
این متغیر دایرکتوریهایی را مشخص میکند که نقطهها برای فایل اسکریپت جستجو میکنند.
بیش از یک دایرکتوری را می توان با جدا کردن آنها توسط دو نقطه مانند نشان داد
PATH متغیر. هنگامی که پوسته شروع می شود، این متغیر به مقدار اولیه می شود
نام مسیر دایرکتوری که فایلهای اسکریپت رایج در آن نصب شدهاند.
YASH_LE_TIMEOUT
این متغیر مشخص می کند که پوسته چه مدت باید برای ورودی احتمالی بعدی منتظر بماند
از ترمینال زمانی که با یک توالی کنترل مبهم روبرو شد در حالی که
ویرایش خط مقدار باید بر حسب میلی ثانیه مشخص شود. اگر تعریف نکنید
این متغیر، مقدار پیش فرض 100 میلی ثانیه در نظر گرفته شده است.
yash_version
هنگامی که پوسته است، مقدار به شماره نسخه پوسته مقداردهی اولیه می شود
آغاز شده.
آرایه ها
An صف متغیری است که شامل صفر یا چند رشته است. مقادیر رشته an
آرایه ها با اعداد طبیعی (مانند پارامترهای موقعیتی) شناسایی می شوند.
با استفاده از یک دستور ساده و همچنین آرایه می توانید مقادیری را به یک آرایه اختصاص دهید
ساخته شده است. می توانید از تنظیمات داخلی برای حذف آرایه ها استفاده کنید.
آرایه ها را نمی توان به عنوان آرایه صادر کرد. هنگامی که یک آرایه صادر می شود، به عنوان یک در نظر گرفته می شود
متغیر عادی که مقدار آن ترکیبی از تمام مقادیر آرایه است که هر یک از هم جدا شده اند
توسط یک روده بزرگ
آرایه ها در حالت POSIXly-correct پشتیبانی نمی شوند.
WORD گسترش
کلمه توسعه جایگزینی بخشی از یک کلمه با یک رشته خاص دیگر است. وجود دارد
هفت نوع بسط کلمه:
1. گسترش تایلد
2. بسط پارامتر
3. تعویض دستور
4. بسط حسابی
5. گسترش بریس
6. شکافتن میدان
7. گسترش نام مسیر (گلوب)
این نوع انبساط ها به ترتیب مشخص شده در بالا انجام می شود.
گسترش تایلد، بسط پارامتر، جایگزینی دستور و بسط حسابی هستند
به نام چهار بسط.
تیلد توسعه
In مدک توسعه، قسمت هایی از کلمات که با تار و مد شروع می شوند (~) جایگزین می شوند
مسیرهای خاص بخشی از هر کلمه که جایگزین می شود از ابتدای آن است
کلمه، که یک تار و مد است، تا (اما نه شامل) اولین اسلش (/) در کلمه. اگر
کلمه حاوی اسلش نیست، کل کلمه جایگزین می شود. اگر شخصیتی در
قسمت جایگزین نقل شده است، بسط tilde روی کلمه انجام نمی شود.
نتایج گسترش با فرمت قسمت جایگزین تعیین می شود:
~
یک tilde منفرد با مقدار the جایگزین می شود صفحه اصلی متغیر.
~نام کاربری
یک tilde به دنبال نام کاربری با نام مسیر خانه کاربر جایگزین می شود
دایرکتوری.
~+
~+ با مقدار the جایگزین می شود PWD متغیر.
~-
~- با مقدار the جایگزین می شود OLDPWD متغیر.
~+n, ~-n
جایی که n یک عدد صحیح غیر منفی است. این نوع بسط tilde نام مسیر را به دست می دهد
دایرکتوری که ~+n or ~-n ایندکس در پشته دایرکتوری است.
هنگامی که بسط tilde بر روی مقدار تخصیص متغیری که در طول انجام می شود انجام می شود
با اجرای یک دستور ساده، مقدار به صورت فهرستی از کلمات جدا شده با دو نقطه در نظر گرفته می شود
و آن کلمات هر کدام در معرض بسط و گسترش هستند. به عنوان مثال، انتساب متغیر
var =~/a:~/b:~/c
برابر است با
VAR=/home/foo/a:/home/foo/b:/home/foo/c
اگر ارزش صفحه اصلی متغیر است /خانه/فو.
استاندارد POSIX نحوه رفتار پوسته را در هنگام برخورد با آن تجویز نمی کند
خطا در حین گسترش تایلد (به عنوان مثال، زمانی که صفحه اصلی متغیر تعریف نشده است). یاش بی صدا
هر گونه خطا را در حین گسترش tilde نادیده می گیرد. بخشی از کلمه که جایگزین می شود
دست نخورده باقی مانده است.
در حالت POSIXly-correct، توسعه tilde از فرمتهای پشتیبانی میکند ~ و ~نام کاربری تنها.
پارامتر توسعه
پارامتر توسعه به مقدار یک پارامتر گسترش می یابد.
نحو بسط پارامتر معمولی و ساده است ${پارامتر}، که به گسترش می یابد
مقدار پارامتری که نام آن است پارامتر. می توانید بریس ها را حذف کنید (به عنوان مثال، $پارامتر)
if
· پارامتر یک پارامتر خاص است،
· پارامتر یک پارامتر موقعیتی است که شاخص آن یک عدد صحیح یک رقمی یا است
· پارامتر یک متغیر است و بسط پارامتر توسط یک کاراکتر دنبال نمی شود
که می تواند به عنوان بخشی از نام متغیر استفاده شود. مثلا، ${path}-name معادل است
به $path-name، اما ${path}name و $pathname متفاوت هستند.
If پارامتر هیچ یک از یک پارامتر خاص، پارامتر موقعیتی و متغیر نیست، آن a است
اشتباه نوشتاری. (برخی پوستههای غیر از yash ممکن است چنین موردی را به عنوان یک خطای گسترش تلقی کنند.)
اگر گزینه unset غیرفعال است و پارامتر یک متغیر تعریف نشده است، یک متغیر است
خطای گسترش اگر گزینه unset فعال باشد، یک متغیر تعریف نشده به آن گسترش می یابد
رشته خالی
نحو پیچیده تر بسط پارامتر اجازه می دهد تا مقدار یک پارامتر را تغییر دهید.
گسترش پارامتر
${ پیشوند پارامتر شاخص تغییر }
فضاهای موجود در تعریف نحو بالا فقط برای خوانایی هستند و باید حذف شوند.
می توانید حذف کنید پیشوند, شاخص، و / یا تغییر.
پیشوند
La پیشوند، در صورت وجود، باید علامت هش باشد (#). اگر یک بسط پارامتر دارای پیشوند باشد،
نتیجه بسط تعداد کاراکترهای مقداری است که این بسط خواهد داشت
بدون پیشوند گسترش یابد.
پارامتر نام
نام پارامتر (پارامتر) باید یکی باشد
· نام یک پارامتر خاص، پارامتر موقعیتی، یا متغیر. یا
· بسط پارامتر دیگر، جایگزینی دستور، یا بسط حسابی.
بسط پارامتر به مقدار the گسترش می یابد پارامتر. اگر پارامتر است
متغیر آرایه، مقادیر آرایه به صورت فیلد تقسیم می شوند @ پارامتر خاص
مگر اینکه شاخص [*] مشخص شده است.
If پارامتر بسط دیگری است که a نامیده می شود تودرتو توسعه. بسط تو در تو
نمی توان در حالت POSIXly-correct استفاده کرد. بریس ها ({ }) از یک پارامتر تو در تو
گسترش را نمی توان حذف کرد.
Index.sp An شاخص امکان استخراج بخشی از مقدار پارامتر (یا برخی از مقادیر آرایه) را فراهم می کند.
شاخص
[word1]
[word1,word2]
جایی که word1 و word2 به همان روشی که توکن های معمولی تجزیه می شوند، با این تفاوت که اینطور هستند
همیشه توسط , or ] و می تواند شامل کاراکترهای فضای خالی باشد.
اگر وجود دارد شاخص در یک بسط پارامتر، به صورت زیر تفسیر می شود:
1. کلمات word1 و word2 در معرض بسط پارامتر، تعویض دستور و
بسط حسابی
2. اگر وجود ندارد word2 و اگر word1 به یکی از آنها گسترش می یابد *, @و #، سپس آن است
تفسیر شاخص و قدم بعدی برداشته نمی شود.
3. نتایج مراحل قبل (بسط word1 و word2) تفسیر می شوند و
به عنوان یک عبارت حسابی به همان شیوه ای که در بسط حسابی ارزیابی می شود.
اعداد صحیح حاصل تفسیر هستند شاخص. در صورتی که نتایج اینگونه نباشد
اعداد صحیح، یک خطای بسط است. اگر وجود ندارد word2، فرض می شود که word2 is
مساوی با word1.
If پارامتر یک متغیر آرایه است شاخص بخشی از آرایه را مشخص می کند. اگر پارامتر
یا یکی است * or @ پارامتر خاص، شاخص محدوده شاخص موقعیتی را مشخص می کند
مولفه های. در موارد دیگر، شاخص محدوده شاخص زیررشته ای را مشخص می کند
مقدار پارامتری که در حال گسترش است. در همه موارد، محدوده مشخص شده آرایه
مقادیر، پارامترهای موقعیتی یا مقدار پارامتر در نتایج بسط باقی می ماند
و مقادیر دیگر حذف می شوند.
اگر تعبیر از شاخص یک یا دو عدد صحیح است، قوانین زیر اعمال می شود:
· اگر مقدار شاخص تفسیر شده منفی باشد، آن پیچد دور و بر. به عنوان مثال، شاخص
مقدار -1 مربوط به آخرین مقدار/کاراکتر است.
· هنگامی که مقدار شاخص خارج از محدوده باشد خطا نیست. ارزش ها/شخصیت های موجود
در محدوده فقط انتخاب شده اند.
· اگر تعبیر هر کدام word1 or word2 0 است، محدوده خالی فرض می شود و
گسترش هیچ نتیجه ای ندارد.
اگر تعبیر از شاخص یکی از *, @و #، به صورت زیر رفتار می شود:
*
If پارامتر یک آرایه است، تمام مقادیر آرایه به یک واحد متصل می شوند
رشته اگر پارامتر هست * or @ پارامتر ویژه، تمام پارامترهای موقعیتی هستند
به یک رشته متصل شده است توضیحات را ببینید * پارامتر ویژه برای چگونگی
مقادیر/پارامترهای موقعیتی در رشته نتیجه جدا می شوند. در موارد دیگر،
تفسیر شاخص طوری رفتار می شود که گویی تفسیر دو عدد صحیح 1 و است
-1.
@
تفسیر از شاخص طوری رفتار می شود که گویی تفسیر دو عدد صحیح 1 است
و -1.
#
تفسیر #شاخص از این جهت خاص است که به سادگی a را مشخص نمی کند
دامنه. در عوض، مقادیر گسترش یافته با شمارش جایگزین می شوند.
If پارامتر یک آرایه است، نتیجه بسط این پارامتر تعداد خواهد بود
مقادیر در آرایه در حال گسترش است. اگر پارامتر هست * or @ پارامتر خاص،
نتیجه تعداد پارامترهای موقعیت فعلی خواهد بود. در غیر این صورت، نتیجه خواهد شد
تعداد کاراکترهای مقداری باشد که در حال گسترش است.
اگر یک بسط پارامتر شامل یک عدد نباشد شاخص، فرض می شود [@]است. در
حالت POSIXly-correct، شاخص نمی تواند مشخص شود
مثال 1. توسعه of a طبیعی متغیر
دستورات زیر رشته را چاپ می کنند الفبا:
var='123ABC789'
پژواک "${var[4,6]}"
مثال 2. توسعه of موقعیتی پارامترهای
دستورات زیر رشته را چاپ می کنند 2 3 4:
مجموعه 1 2 3 4 5
پژواک "${*[2,-2]}"
مثال 3. توسعه of an صف
دستورات زیر رشته را چاپ می کنند 2 3 4:
آرایه = (1 2 3 4 5)
echo "${array[2,-2]}"
تغییر
با استفاده از آن می توانید مقدار مورد نظر را تغییر دهید اصلاح کننده ها:
-کلمه
اگر نام پارامتر (پارامتر) یک متغیر تعریف نشده، پارامتر است
گسترش به گسترش می یابد کلمه. اگر گزینه تنظیم نشده باشد، به عنوان یک خطا تلقی نمی شود
غیرفعال است
+کلمه
اگر نام پارامتر (پارامتر) یک متغیر موجود، بسط پارامتر است
گسترش یافته است کلمه. اگر گزینه تنظیم نشده باشد، به عنوان یک خطا تلقی نمی شود
معلول.
=کلمه
اگر نام پارامتر (پارامتر) یک متغیر تعریف نشده است، کلمه اختصاص داده شده است
متغیر و بسط پارامتر به گسترش می یابد کلمه. با آن برخورد نمی شود
اگر گزینه unset غیرفعال باشد خطا می دهد.
?کلمه
اگر نام پارامتر (پارامتر) یک متغیر تعریف نشده است، کلمه به صورت چاپ شده است
پیام خطا به خطای استاندارد. اگر کلمه خالی است، پیام خطای پیش فرض است
به جای آن چاپ می شود.
:-کلمه, :+کلمه, :=کلمه, :?کلمه
اینها شبیه به چهار نوع اصلاح کننده بالا هستند. تنها تفاوت این است
که اگر پارامتر وجود دارد و دارای یک مقدار خالی است، همچنین به عنوان یک رفتار می شود
متغیر تعریف نشده.
#کلمه
پوسته تطبیق الگو را با مقداری که در حال گسترش است انجام می دهد،
با استفاده از کلمه به عنوان یک الگو اگر کلمه منطبق با شروع مقدار، مطابقت
قسمت از مقدار حذف می شود و قسمت دیگر به عنوان نتایج توسعه باقی می ماند.
در صورتی که بیش از یک تطبیق امکان پذیر باشد از کوتاه ترین تطابق استفاده می شود.
##کلمه
این شبیه به #کلمه در بالا. تنها تفاوت این است که طولانی ترین تطبیق است
اگر بیش از یک تطبیق ممکن باشد استفاده می شود.
%کلمه
این شبیه به #کلمه در بالا. تنها تفاوت این است که تطبیق در آن امتحان شده است
انتهای مقدار به جای شروع: اگر کلمه منطبق بر پایان
مقدار، قسمت منطبق از مقدار حذف می شود و قسمت دیگر به عنوان باقی می ماند
نتایج گسترش
%%کلمه
این شبیه به %کلمه در بالا. تنها تفاوت این است که طولانی ترین تطبیق است
اگر بیش از یک تطبیق ممکن باشد استفاده می شود.
/word1/word2
پوسته تطبیق الگو را با مقداری که در حال گسترش است انجام می دهد،
با استفاده از word1 به عنوان یک الگو اگر word1 با هر بخشی از مقدار مطابقت دارد
قطعه با word2 و کل مقدار پس از تعویض باقی می ماند
نتایج گسترش اگر word1 منطبق بر بیش از یک بخش از مقدار، فقط
قسمت اول تعویض شد کوتاه ترین تطابق در صورتی جایگزین می شود که بیش از یک مورد باشد
تطبیق برای همان نقطه شروع در مقدار امکان پذیر است.
این اصلاح کننده را نمی توان در حالت POSIXly-correct استفاده کرد.
/#word1/word2
این شبیه به /word1/word2 در بالا. تنها تفاوت این است که word1 کبریت
فقط در ابتدای مقدار در حال گسترش است.
/%word1/word2
این شبیه به /word1/word2 در بالا. تنها تفاوت این است که word1 کبریت
فقط در پایان مقدار در حال گسترش است.
//word1/word2
این شبیه به /word1/word2 در بالا. تنها تفاوت این است که همه مطابقت دارند
در صورت تعویض قطعات word1 با بیش از یک قسمت از مقدار مطابقت دارد.
:/word1/word2
این شبیه به /word1/word2 در بالا. تنها تفاوت این است که ارزش است
تنها زمانی جایگزین می شود word1 با کل ارزش مطابقت دارد.
در همه انواع اصلاحکنندههای بالا، کلمات در معرض چهار بسط قرار میگیرند که (و
فقط زمانی که) استفاده شوند.
If پارامتر یک متغیر آرایه است یا @ or * پارامتر خاص، اصلاح کننده ها تاثیر می گذارد
هر مقدار آرایه یا تمام پارامترهای موقعیتی.
فرمان جایگزینی
فرمان جایگزینی به خروجی دستورات مشخص شده گسترش می یابد.
تعویض فرمان
$(دستورات)
`دستورات`
هنگامی که جایگزینی دستور ارزیابی می شود، دستورات توسط یک پوسته فرعی با خروجی اجرا می شوند
خط لوله به پوسته. وقتی که دستورات به پایان رسید، جایگزینی دستور جایگزین شد
با خروجی از دستورات. هر کاراکتر آخر خط جدید در خروجی هستند
نادیده گرفته شد
هنگامی که دستور جایگزین فرم $(دستورات) تجزیه می شود، دستورات تجزیه می شوند
با دقت به طوری که دستورات پیچیده مانند جایگزینی دستور تو در تو تجزیه شوند
به درستی. اگر دستورات شروع کن با (، باید قبل از آن فاصله بگذارید دستورات به طوری که
جایگزینی کل دستور با بسط حسابی اشتباه گرفته نمی شود. اگر پوسته در
حالت POSIXly-correctly، دستورات هر بار که تعویض دستور انجام می شود، تجزیه می شوند
منبسط؛ در غیر این صورت، دستورات تنها زمانی تجزیه می شوند که جایگزینی دستور تجزیه شود.
اگر جایگزینی دستور به شکل باشد `دستورات`از دستورات وقتی تجزیه نمی شوند
جایگزینی دستور تجزیه می شود. انتهای، آخر دستورات توسط نقل قول اول شناسایی می شود
شخصیت (`) پس از آغاز دستورات که با بک اسلش نقل نشده است.
نقل قول هایی که بخشی از دستورات (معمولاً برای جایگزینی دستور تو در تو استفاده می شود) باید
به وسیله بک اسلش نقل شود. در دستورات هر بار که تعویض دستور انجام می شود، تجزیه می شوند
منبسط.
حساب توسعه
حساب توسعه یک عبارت حسابی را ارزیابی می کند و تا مقدار آن گسترش می یابد
اصطلاح.
بسط حسابی
$((بیان))
هنگامی که بسط حسابی گسترش می یابد، بیان در معرض گسترش پارامتر است،
جایگزینی دستور، و بسط حسابی (تودرتو). در بیان در تجزیه می شود
(تقریباً) همان روشی که بیان زبان برنامه نویسی C است.
Yash اجازه می دهد که یک عبارت یا یک عدد صحیح (از نوع طولانی در C) یا a باشد
عدد ممیز شناور (از نوع دوتایی در C). عملیات روی اعداد صحیح یک عدد را به دست می دهد
عدد صحیح و عملیاتی که شامل یک عدد ممیز شناور است، یک عدد ممیز شناور به دست میدهد.
در حالت POSIXly-correct، فقط می توانید از اعداد صحیح استفاده کنید.
عملگرهای زیر در دسترس هستند (به ترتیب اولویت):
1. ( )
2. ++-- (اپراتورهای postfix)
3. ++--+-~! (اپراتورهای پیشوند)
4. */%
5. +- (اپراتورهای باینری)
6. << >>
7. <<=>>=
8. ==!=
9. &
10. ^
11. |
12. &&
13. ||
14. ? :
15. =*=/=%=+=-=<<=>>=&=^=|=
La ++ و -- عملگرها را نمی توان در حالت POSIXly-correct استفاده کرد.
یک عبارت اتمی می تواند یکی از یک عدد صحیح واقعی، یک عدد ممیز شناور باشد،
و یک متغیر لفظ ها به همان شیوه ای که در C. تجزیه می شوند
شروع می شود با 0، و هگزادسیمال با 0x. یک عدد ممیز شناور تحت اللفظی ممکن است دارای یک باشد
توان (یعنی 1.23e + 6). متغیری با مقدار غیر عددی منجر به خطا می شود زمانی که
به عنوان یک عدد تجزیه می شود.
در حالت POSIXly-correct، متغیرها همیشه به صورت اعداد تجزیه می شوند. در غیر این صورت متغیرها
تنها زمانی تجزیه می شوند که به عنوان اعداد در محاسبات استفاده شوند. متغیرهای تجزیه نشده باقی می مانند
سالم.
set +o posixly-correct
فو = بار
echo $((0 ? foo : foo)) # چاپ "نوار"
echo $((foo + 0)) # خطا
برس توسعه
برس توسعه به چندین کلمه تقسیم شده با بخش های قبلی و بعدی گسترش می یابد
برای هر تقسیم کلمات کپی شده است. انبساط بریس تنها زمانی منبسط می شود که بادبند باز شود
گزینه فعال است.
گسترش پرانتز جدا شده با کاما
{word1,word2، ... ،wordn}
گسترش بردبند
{شروع..پایان}
{شروع..پایان..دلتا}
بسط پرانتز جدا شده با کاما به هر کلمه جدا شده با کاما گسترش می یابد. مثلا،
a{1,2,3،XNUMX،XNUMX}ب به سه کلمه بسط می یابد a1b, a2bو a3b.
بسط پرانتز محدوده به اعداد صحیح در محدوده تعریف شده توسط شروع و پایان.
تفاوت بین هر عدد صحیح را می توان با تعریف کرد دلتا. اگر شروع بزرگتر از پایاناز
نتایج به ترتیب نزولی خواهد بود. چه زمانی ..دلتا حذف شده است، پیش فرض آن 1 یا -1 است. برای
مثال، الف{1..3}ب به سه کلمه بسط می یابد a1b, a2bو a3bو a{1..7..2}ب به
چهار کلمه a1b, a3b, a5bو a7b.
چند انبساط بریس را می توان در یک کلمه استفاده کرد. انبساط بریس نیز می تواند تو در تو باشد.
برای جلوگیری از تلقی آنها به عنوان بسط پرانتز، میتوانید از پرانتزها و/یا کاما نقل قول کنید.
هر گونه خطا در گسترش مهاربند بیصدا نادیده گرفته میشود.
میدان تقسیم
In رشته تقسیم، کلمات در جداکننده های از پیش تعریف شده تقسیم می شوند.
تقسیم فیلد فقط در قسمت هایی از کلمات که از پارامتر حاصل شده اند می تواند رخ دهد
بسط، جایگزینی دستور، و بسط حسابی که بین آنها نیست
دو گیومه نتایج گسترش از @ پارامترهای ویژه استثنایی هستند
حتی بین دو علامت نقل قول تقسیم کنید.
جداکننده های مورد استفاده در تقسیم فیلد با مقدار the تعریف می شوند IFS متغیر. اگر
متغیر وجود ندارد، مقدار آن سه کاراکتر space، tab، در نظر گرفته می شود.
و خط جدید
شخصیت های موجود در ارزش IFS متغیر نامیده می شوند IFS کاراکتر. IFS
کاراکترهایی که هر کدام از فاصله، تب و خط جدید هستند نامیده می شوند IFS فضای سفید و سایر IFS ها
شخصیت ها نامیده می شوند IFS بدون فضای سفید.
تقسیم میدان به شرح زیر انجام می شود:
1. پوسته کلمات را برای نقاط تقسیم جستجو می کند. نقطه تقسیم یک یا چند IFS مجاور است
کاراکترهای درون بخش های کلمه که در معرض تقسیم فیلد هستند. به شرح زیر
برای هر نقطه تقسیم یافت شده مراحل انجام می شود.
2. اگر نقطه تقسیم شامل یک یا چند فضای غیر سفید IFS باشد، هر فضای سفید IFS در
نقطه تقسیم نادیده گرفته می شود و کلمه در هر فضای غیر سفید IFS در
نقطه تقسیم
3. اگر نقطه تقسیم فاقد فضای خالی IFS باشد، کلمه در تقسیم تقسیم می شود.
نقطه، مگر اینکه در ابتدا یا انتهای کلمه باشد.
4. نقاط تقسیم از نتایج حذف می شود.
توجه داشته باشید:
زمانی که ارزش کلمه به هیچ وجه تقسیم نمی شود IFS متغیر خالی است
نام مسیر توسعه
نام مسیر توسعه تطبیق الگو را انجام می دهد و به نام مسیرهای منطبق با
الگوی.
کلمه ای که در معرض گسترش نام مسیر قرار می گیرد به عنوان یک الگو در نظر گرفته می شود. اگر یک یا چند نام مسیر
یافت می شوند که با الگو مطابقت دارند، نام مسیرها به نتایجی تبدیل می شوند
گسترش نام مسیر
وقتی گزینه glob غیرفعال است، گسترش نام مسیر انجام نمی شود.
پوسته دایرکتوری های قابل خواندن را برای نام مسیرهای منطبق جستجو می کند. دایرکتوری های ناخوانا هستند
بی صدا نادیده گرفته شد
گزینه های زیر بر رفتار گسترش نام مسیر تأثیر می گذارد:
null-glob
این گزینه بر نتیجه گسترش نام مسیر زمانی که هیچ مسیر منطبقی وجود ندارد تأثیر می گذارد
یافت. اگر فعال باشد، نتیجه بدون کلمه است. اگر غیرفعال باشد، نتیجه اصلی است
کلمه الگو
Case-glob
این گزینه حساسیت به حروف بزرگ را در تطبیق مشخص می کند. اگر فعال باشد، مطابقت الگو است
به حروف کوچک و بزرگ انجام می شود.
نقطه-کره
این گزینه بر تطابق نام فایل هایی که با نقطه شروع می شوند (.). در صورت غیرفعال بودن، الف
نقطه در ابتدای نام فایل با الگوهای عام مطابقت ندارد (? و *) و یا
عبارات براکت اگر فعال باشد، چنین رفتار خاصی برای پریود وجود ندارد.
mark-dirs
اگر فعال باشد، هر نام مسیری که یک نام دایرکتوری است با یک اسلش اضافه می شود
(/).
گسترده-کره
این گزینه افزونه را فعال می کند. (پایین را ببینید)
هر گونه خطا در گسترش نام مسیر بی سر و صدا نادیده گرفته می شود. اگر کلمه یک الگوی نامعتبر است،
فقط نتیجه می شود در صورت عدم تطابق، نتایج به گزینه null-glob بستگی دارد
مسیرها پیدا می شوند
تطبیق الگو برای هر نام فایل (یا جزء نام مسیر) نام مسیرها انجام می شود. پوسته
از تطبیق الگوهای تحت اللفظی که فاقد عبارات عام یا عبارات براکتی هستند صرفنظر می کند. به عنوان یک
نتیجه، الگوها /*/فو و /*/fo[o] ممکن است نتایج انبساط متفاوتی را زمانی که
گزینه case-glob غیرفعال است. مثلا الگو /*/fo[o] با نام مسیر مطابقت دارد
/bar/FOO اما الگو /*/فو نمی کند زیرا تطبیق برای حذف شده است فو.
توسعه in نام خانوادگی توسعه
هنگامی که گزینه Extended-glob فعال باشد می توان از الگوهای زیر استفاده کرد.
**
دایرکتوری به صورت بازگشتی جستجو می شود و الگو با هر تعداد از آن مطابقت دارد
نام فایل دایرکتوری (هر کدام با یک اسلش از هم جدا می شوند). هر دایرکتوری که نامش شروع می شود
با یک نقطه از جستجو حذف می شود. مثلا الگو dir/**/file می توان
نام مسیرها را مطابقت دهید dir/file, dir/foo/file, dir/a/b/c/file، و غیره
این الگو زمانی که در انتهای کل الگو ظاهر می شود (یعنی
foo/bar/**).
**
این الگو مانند است **، اما همه دایرکتوری ها از جمله دایرکتوری های دارای a جستجو می شوند
نامی که با نقطه شروع می شود
***
این الگو مانند است **، اما اگر یک پیوند نمادین به دایرکتوری در طول پیدا شود
جستجوی بازگشتی، فهرست به صورت بازگشتی نیز جستجو می شود.
***
این الگو مانند است ***، اما همه دایرکتوری ها از جمله دایرکتوری های دارای a جستجو می شوند
نامی که با نقطه شروع می شود
الگو تطابق نشانه گذاری
الگو مطابق نشانه گذاری نحوی است از الگوهای که نشان دهنده مجموعه های خاصی از
رشته های. هنگامی که یک رشته در مجموعه رشتهها گنجانده میشود که یک الگو نشاندهنده آن است، الگو
گفته می شود به همخوانی داشتن رشته اینکه آیا یک الگو با یک رشته مطابقت دارد یا نه به عنوان تعریف می شود
دنبال می کند
معمولی کاراکتر
کاراکتری که نقل قول نشده باشد یا هیچ یک از نویسههای خاص که در زیر تعریف شده باشد، عادی است
شخصیت، که با خود شخصیت مطابقت دارد.
مثلا الگو الفبا با رشته مطابقت دارد الفباو نه رشته های دیگر.
تک شخصیتی wildcard
شخصیت ? با هر شخصیت منطبق است
مثلا الگو a?c با هر رشته سه نویسه ای که با آن شروع می شود مطابقت دارد a و
به پایان می رسد با c، از جمله قبل از میلاد مسیح, الفباو ج.
چند شخصیتی wildcard
شخصیت * با هر رشته ای (با هر طولی، از جمله رشته خالی) مطابقت دارد.
مثلا الگو a*c با هر رشته ای که با آن شروع می شود مطابقت دارد a و به پایان می رسد c، چنین
as ac, الفباو a;xyz;ج.
براکت بیان
الگویی که توسط پرانتز محصور شده است ([ و ]) هست یک براکت بیان. یک براکت
عبارت باید حداقل یک کاراکتر بین پرانتز داشته باشد. شخصیت های بین
براکت ها به صورت a تفسیر می شوند براکت بیان الگو، که در زیر تعریف شده است
نماد ویژه برای بیان براکت. یک الگوی بیان براکت نشان دهنده مجموعه ای از
شخصیت ها. عبارت براکت با هر یک از کاراکترهای مجموعه مطابقت دارد
الگوی بیان براکت نشان می دهد.
اگر براکت باز ([) با علامت تعجب (!)، تعجب نیست
به عنوان بخشی از الگوی بیان براکت و در عوض کل عبارت براکت در نظر گرفته می شود
با شخصیتی که هست مطابقت دارد نه شامل الگوی بیان براکت در مجموعه است
نشان می دهد. اگر پس از براکت باز، یک کارت (^)، با آن مانند یک رفتار می شود
علامت تعجب مانند بالا (اما پوسته های دیگر به غیر از یاش ممکن است رفتار متفاوتی با کرت داشته باشند).
اگر پس از براکت باز (یا تعجب یا اخطار زیر، در صورت وجود) a
براکت بسته شدن (]، به عنوان بخشی از الگوی بیان براکت در نظر گرفته می شود
انتهای عبارت براکت شما نمی توانید کاراکترها را در عبارت براکت نقل قول کنید
الگوی زیرا نقل قول قبل از بیان براکت بررسی می شود.
یک براکت باز در یک الگو به عنوان یک کاراکتر معمولی در نظر گرفته میشود، اگر اینطور نباشد
شروع یک عبارت براکت معتبر
معمولی کاراکتر (در براکت بیان الگو)
کاراکتری که هیچ یک از کاراکترهای ویژه تعریف شده در زیر نیست، یک کاراکتر معمولی است.
که خود شخصیت را نشان می دهد.
به عنوان مثال، الگوی بیان براکت الفبا مجموعه ای از سه شخصیت را نشان می دهد
a, bو c. عبارت براکت [abc] بنابراین با هر یک از سه کاراکتر مطابقت دارد.
محدوده اصطلاحات
خط فاصله قبل و بعد از یک کاراکتر (یا نماد ترکیبی) a است محدوده بیان,
که مجموعه ای از دو شخصیت و همه شخصیت های بین این دو را نشان می دهد
ترتیب تسویه آ تلفیق سفارش ترتیبی از کاراکترها است که در محلی تعریف شده است
داده است.
اگر پس از خط فاصله، یک براکت بسته شود (]، براکت به عنوان انتهای آن در نظر گرفته می شود
عبارت براکت و خط فاصله به عنوان یک کاراکتر معمولی.
برای مثال عبارت range 3-5 مجموعه ای از سه شخصیت را نشان می دهد 3, 4و
5. عبارت براکت [3-5-] بنابراین با یکی از چهار کاراکتر مطابقت دارد 3, 4, 5و
-.
در حال هم زدن نمادها
A تطبیق نماد اجازه می دهد تا بیش از یک کاراکتر به عنوان یک کاراکتر واحد در نظر گرفته شود
تطابق. یک نماد ترکیبی از یک یا چند کاراکتر تشکیل شده است که توسط علامت خاص محصور شده اند
براکت [. و .].
یک یا چند کاراکتر که در تطبیق به عنوان یک کاراکتر واحد در نظر گرفته می شوند a نامیده می شوند
تطبیق عنصر. دقیقاً، یک الگوی بیان براکت نشان دهنده مجموعه ای از تطبیق است
عناصر و عبارت براکت با یک عنصر ترکیبی به جای یک کاراکتر مطابقت دارد، اما
ما در اینجا برای اختصار آنها را از هم متمایز نمی کنیم.
به عنوان مثال، ترکیب کاراکتر "ch" به عنوان یک کاراکتر واحد در تلقی می شود
زبان سنتی اسپانیایی اگر این ترکیب کاراکتر به عنوان یک تطبیق ثبت شود
عنصر در داده های محلی، عبارت براکت [[.ch.]df] مطابق با یکی از ch, dو f.
معادل سازی کلاس ها
An هم ارزی کلاس مجموعه ای از شخصیت ها را نشان می دهد که در نظر گرفته می شوند معادل.
کلاس هم ارزی از یک کاراکتر (یا دقیق تر، یک عنصر ترکیبی) تشکیل شده است.
توسط براکت های مخصوص محصور شده است [= و =].
یک کلاس هم ارزی مجموعه ای از کاراکترها را نشان می دهد که از کاراکتر تشکیل شده است
محصور شده توسط پرانتزها و کاراکترهایی که در یک کلاس معادل اولیه قرار دارند
به عنوان شخصیت محصور. پوسته از داده های محلی برای تعریف استفاده می کند
کلاس های هم ارزی در محل فعلی.
به عنوان مثال، اگر شش شخصیت a, à, á, â, ã, ä در همان ابتدایی تعریف شده اند
کلاس هم ارزی، عبارات براکت [[=a=]], [[=à=]]و [[=á=]] مطابقت با یکی از
شش
شخصیت کلاس ها
A شخصیت کلاس مجموعه ای از کاراکترهای از پیش تعریف شده را نشان می دهد. یک کلاس شخصیت تشکیل شده است
نام یک کلاس که توسط پرانتزهای خاص محصور شده است [: و :]. پوسته با منطقه مشورت می کند
داده هایی که یک کاراکتر به آن کلاس تعلق دارد.
کلاس های کاراکتر زیر را می توان در همه مناطق استفاده کرد:
[:lower:]
مجموعه ای از حروف کوچک
[:بالا:]
مجموعه ای از حروف بزرگ
[:alpha:]
مجموعه ای از حروف، از جمله [:lower:] و [:بالا:] کلاس.
[: رقم:]
مجموعه ارقام اعشاری
[:xdigit:]
مجموعه ای از ارقام هگزادسیمال
[:alnum:]
مجموعه ای از حروف و ارقام، از جمله [:alpha:] و [: رقم:] کلاس.
[:جای خالی:]
مجموعه ای از کاراکترهای خالی، بدون احتساب کاراکتر خط جدید
[:فضا:]
مجموعه ای از کاراکترهای فاصله، از جمله کاراکتر خط جدید
[:punct:]
مجموعه ای از علائم نگارشی
[:چاپ:]
مجموعه ای از کاراکترهای قابل چاپ
[:cntrl:]
مجموعه ای از کاراکترهای کنترلی
به عنوان مثال، عبارت براکت [[:lower:][:upper:]] با حروف کوچک یا بزرگ مطابقت دارد
شخصیت. علاوه بر کلاس های ذکر شده در بالا، کلاس های دیگری نیز ممکن است بسته به موارد مورد استفاده قرار گیرند
تعریف محل فعلی
تغییر مسیر
راهنمایی مجدد یک ویژگی است که می توانید از آن برای تغییر توصیفگرهای فایل دستورات استفاده کنید. با استفاده از
تغییر مسیر، می توانید دستورات را با ورودی/خروجی استاندارد آنها که به آن متصل است اجرا کنید
فایل ها یا دستگاه هایی غیر از ترمینال
می توانید با افزودن عملگرهای تغییر مسیر به یک دستور، تغییر مسیر را انجام دهید (فرمان ساده یا
دستور ترکیبی) در یک دستور ساده، عملگرهای تغییر مسیر ممکن است در هر جایی از دستور ظاهر شوند
تا زمانی که توکنهای اپراتور از توکنهای دیگر جدا باشند، دستور دهید. در یک دستور مرکب،
عملگرهای تغییر مسیر باید در انتهای دستور ظاهر شوند.
عملگرهای تغییر مسیر قبل از اجرای بدنه فرمان پردازش می شوند. بیش از یکی
عملگر تغییر مسیر در یک فرمان به ترتیب ظاهر پردازش می شود. تغییر مسیر
عملگرها فقط بر دستوری که در آن ظاهر می شوند تأثیر می گذارند، مگر زمانی که در یک exec ظاهر می شوند
ساخته شده بدون عملوندهای دستوری. یعنی توصیفگرهای فایل با تغییر مسیر اصلاح شده اند
پس از اتمام فرمان بازیابی می شود.
یک عملگر تغییر مسیر با شروع می شود < or >. اپراتورهای تغییر مسیر با شروع < تحت تاثیر قرار
ورودی استاندارد (فایل توصیفگر 0) به طور پیش فرض. اپراتورهای تغییر مسیر با شروع >
به طور پیش فرض بر خروجی استاندارد (مشخص کننده فایل 1) تأثیر می گذارد. برای تاثیر گذاری روی فایل دیگری
توصیفگر، می توانید یک عملگر تغییر مسیر را با یک عدد صحیح غیر منفی پیشوند قرار دهید. را
عملگر بر توصیفگر فایل مشخص شده توسط عدد صحیح تاثیر می گذارد. عدد صحیح باید
بلافاصله قبل از < or > بدون هیچ فضای خالی بین عدد صحیح نباید باشد
نقل شده، یا.
راهنمایی مجدد به فایل ها
رایج ترین نوع تغییر مسیر، هدایت مجدد به فایل ها است.
تغییر مسیر ورودی
< رمز
تغییر جهت خروجی
> رمز
>| رمز
>> رمز
تغییر مسیر ورودی و خروجی
<> رمز
La رمز مشمول چهار بسط است. همچنین مشمول گسترش نام مسیر اگر
پوسته تعاملی است. نتیجه گسترش به عنوان نام مسیر فایل در نظر گرفته می شود
که تغییر مسیر انجام می شود. اگر گسترش نام مسیر منجر به یک واحد نشود
نام مسیر، یک خطا است.
در تغییر مسیر ورودی، ورودی استاندارد با یک توصیفگر فایل جایگزین می شود
برای دسترسی فقط خواندنی به فایل مورد نظر باز شود. اگر فایل مورد نظر برای باز نمی شود
دسترسی فقط خواندنی، این یک خطا است.
در تغییر مسیر خروجی، خروجی استاندارد با یک توصیفگر فایل جایگزین می شود
برای دسترسی فقط نوشتنی به فایل مورد نظر باز شود. اگر فایل مورد نظر برای باز نمی شود
دسترسی فقط نوشتن، یک خطا است. اگر فایل مورد نظر وجود نداشته باشد، یک فایل خالی جدید است
ایجاد و باز شد. اگر فایل هدف از قبل وجود داشته باشد، فایل به صورت زیر باز می شود:
· برای >| اپراتور، اگر فایل معمولی باشد، هنگام باز شدن خالی می شود.
· برای > عملگر، رفتار همان است >| اپراتور اگر گزینه clobber
فعال شده است. اگر این گزینه غیرفعال باشد و فایل یک فایل معمولی باشد، به عنوان تلقی می شود
یک خطا.
· برای >> اپراتور، فایل برای الحاق باز می شود. هر خروجی به فایل
توصیفگر به انتهای فایل اضافه شده است.
در تغییر مسیر ورودی و خروجی، ورودی استاندارد با یک توصیفگر فایل جایگزین می شود
که برای دسترسی خواندن و نوشتن به فایل مورد نظر باز است. اگر فایل وجود نداشته باشد، الف
فایل خالی جدید ایجاد و باز می شود.
پریز تغییر مسیر
اگر نام مسیر فایل مورد نظر از فرم باشد /dev/tcp/میزبان/بندر or
/dev/udp/میزبان/بندر و فایل را نمی توان به روش معمول باز کرد، یک سوکت جدید است
برای ارتباط با بندر از میزبان. تغییر مسیر جایگزین
ورودی یا خروجی استاندارد با توصیفگر فایل به سوکت.
یک سوکت جریان برای فرم باز می شود /dev/tcp/میزبان/بندر و یک سوکت دیتاگرام برای
فرم /dev/udp/میزبان/بندر. پروتکلی که در واقع برای ارتباط استفاده می شود
توسط کتابخانه سوکت مورد استفاده پوسته تعیین می شود. به طور معمول، سوکت های جریان از TCP و استفاده می کنند
سوکت های دیتاگرام UDP
در تغییر مسیر سوکت، توصیفگر فایل بدون توجه به آن، هم قابل خواندن و هم قابل نوشتن است
نوع عملگر تغییر مسیر مورد استفاده
سوکت تغییر مسیر پسوند yash است که در POSIX تعریف نشده است. Bash نیز دارد
تغییر مسیر سوکت به عنوان پسوند.
تکثیر. مضاعف شدن of پرونده توصیف کننده ها
تغییر مسیر اجازه می دهد تا توصیفگرهای فایل موجود را کپی یا ببندید.
تکراری بودن توصیفگر فایل
<& رمز
>& رمز
La رمز مانند هدایت مجدد به فایل ها در معرض گسترش است، اما به عنوان یک فایل در نظر گرفته می شود
توصیف کننده به جای نام مسیر. بنابراین گسترش یافته است رمز باید یک عدد صحیح غیر منفی باشد.
La <& و >& اپراتورها توصیفگر فایل مشخص شده توسط را کپی می کنند رمز به استاندارد
ورودی و خروجی به ترتیب. (اپراتورها را می توان با یک عدد صحیح غیر منفی پیشوند داد
به طوری که توصیفگر فایل به یک توصیفگر فایل غیر از استاندارد کپی می شود
ورودی یا خروجی.)
اگر گسترش یافته است رمز یک خط فاصله است به جای یک عدد صحیح غیر منفی، فایل
توصیفگر به جای تکراری بسته است. به طور پیش فرض، <& و >& اپراتورها را می بندند
ورودی و خروجی استاندارد به ترتیب، اما عملگرها را می توان با a پیشوند گذاشت
عدد صحیح غیر منفی به طوری که یک توصیفگر فایل دیگر بسته شود.
در حالت POSIXly-correct، یک توصیفگر فایل باید زمانی که توسط <&
عملگر و قابل نوشتن در صورت کپی شدن توسط >& اپراتور.
اینجا اسناد و مدارک و اینجا کلیک نمایید رشته های
اینجا سند و اینجا کلیک نمایید رشته اجازه هدایت مجدد به توصیفگرهای فایلی که رشته ها را می خواند
به طور مستقیم در دستورات پوسته مشخص شده است.
در اینجا سند
<< رمز
<<- رمز
در اینجا رشته
<< رمز
در یک سند here یا رشته here، ورودی استاندارد با یک فایل قابل خواندن جایگزین می شود
توصیف کننده هنگامی که فرمان از توصیفگر فایل می خواند، محتویات آن را می خواند
سند/رشته اینجا که در زیر تعریف شده است.
هنگامی که یک اپراتور سند اینجا (<< or <<-) در یک فرمان ظاهر می شود، پوسته عبارت را می خواند
محتوای سند اینجا از خط بعدی شروع می شود. مطالب در اینجا اسناد
به عنوان دستور تجزیه و یا اجرا نمی شوند. در رمز بعد از اینکه عملوند یک جداکننده را مشخص کرد
که نشان دهنده پایان مطالب است. ( رمز مشمول هیچ گونه گسترش نیست، اما
نقل قول پردازش می شود.) محتویات سند اینجا درست قبل از پایان پایان می یابد
خط اول حاوی رمز فقط. هنگام استفاده از <<- اپراتور، تمام کاراکترهای برگه در
ابتدای هر خط در اینجا محتویات سند حذف شده و جداکننده
رمز ممکن است قبل از کاراکترهای برگه باشد.
اگر بیش از یک اپراتور سند اینجا در یک خط وجود دارد، محتوای اینجاست
اسناد به ترتیب تجزیه می شوند: محتویات اولین سند اینجا از قسمت شروع می شود
سطر بعدی و قبل از سطر اول که حاوی رمز که به دنبال اولین
اپراتور. درست بعد از آن خط، محتویات دومین سند اینجا شروع می شود و به همین ترتیب
بر.
محتویات اسناد در اینجا به معنای واقعی کلمه در نظر گرفته میشوند: فضاهای خالی، برگهها و غیره باقی میمانند
است. استثنا این است که، زمانی که رمز اصلا نقل نشده است:
· محتویات در معرض بسط پارامتر، جایگزینی دستور، محاسبات هستند
به گسترش است.
· یک بک اسلش در مطالب به عنوان نقل قول در نظر گرفته می شود اگر و فقط اگر قبل از آن باشد $, `,
"، یا بک اسلش دیگر.
· یک بک اسلش و به دنبال آن یک خط جدید به عنوان ادامه خط در نظر گرفته می شود.
در اینجا رشته، رمز پس از اینکه اپراتور در معرض گسترش قرار گرفت همانطور که در تغییر مسیر به
فایل ها. نتیجه گسترش محتویات رشته here می شود. یک شخصیت خط جدید
به طور خودکار به انتهای محتوای رشته اینجا اضافه می شود.
در اینجا رشته پسوند yash است که در POSIX تعریف نشده است. پوسته های دیگر مانند bash، ksh،
و zsh هم همین ویژگی را دارند.
خط لوله تغییر مسیر
خط لوله تغییر مسیر اجازه می دهد تا خطوط لوله را باز کنید که می توانند برای اهداف دلخواه مورد استفاده قرار گیرند.
تغییر مسیر خط لوله
>> | رمز
La رمز مانند هدایت مجدد به فایل ها در معرض گسترش است، اما به عنوان یک فایل در نظر گرفته می شود
توصیف کننده به جای نام مسیر. بنابراین گسترش یافته است رمز باید یک عدد صحیح غیر منفی باشد.
تغییر مسیر خط لوله یک خط لوله جدید را باز می کند. خروجی استاندارد (یا توصیفگر فایل
قبل از اپراتور مشخص شده است، در صورت وجود) با توصیفگر فایل باز برای جایگزین می شود
نوشتن به خط لوله توصیفگر فایل مشخص شده توسط رمز با فایل جایگزین می شود
توصیفگر برای خواندن از خط لوله باز است.
تغییر مسیر خط لوله پسوند yash است که در POSIX تعریف نشده است.
روند تغییر مسیر
روند تغییر مسیر یک خط لوله متصل به دستور دیگری ایجاد می کند.
تغییر مسیر فرآیند
<(فرمان...)
>(فرمان...)
در تغییر مسیر فرآیند، فرمان مشخص شده در یک پوسته فرعی اجرا می شود. اگر روند
تغییر مسیر از این شکل است <(فرمان...)، خروجی استاندارد از فرمان با
یک خط لوله به ورودی استاندارد دستوری که تغییر مسیر با آن مرتبط است. اگر
تغییر مسیر فرآیند از این شکل است >(فرمان...)، ورودی استاندارد از فرمان is
با یک خط لوله به خروجی استاندارد دستور تغییر مسیر متصل می شود
مرتبط با.
تغییر مسیر فرآیند پسوند yash است که در POSIX تعریف نشده است. Bash و zsh یک دارند
ویژگی به نام جایگزینی فرآیند، که از نحوی مشابه فرآیند yash استفاده می کند
تغییر جهت، اما به طور ناسازگار در رفتار متفاوت است.
COMMAND اعدام
این بخش نحوه اجرای دستورات را توضیح می دهد.
اعدام of ساده دستورات
یک دستور ساده به صورت زیر اجرا می شود:
1. همه نشانه ها در دستور ساده بجز انتساب و تغییر مسیر گسترش می یابند
نشانه ها اگر در حین گسترش خطایی رخ دهد، اجرای دستور ساده است
با وضعیت خروج غیر صفر سقط شد.
در مراحل زیر به اولین کلمه از نتایج بسط اشاره می شود
فرمان نام، و کلمات دیگر به عنوان فرمان استدلال. اگر فقط یک کلمه از
نتایج بسط، هیچ کلمه آرگومان دستوری وجود ندارد. اگر هیچ یک از آنها وجود ندارد
نتایج توسعه، نام دستوری نیز وجود ندارد.
2. تغییر مسیر مشخص شده در دستور، در صورت وجود، پردازش می شود. کلمه نشانه بعد از هر
عملگر تغییر مسیر گسترش یافته است. اگر در حین تغییر مسیر پردازش خطایی رخ دهد
(از جمله هنگام گسترش کلمه نشانه)، اجرای این دستور ساده است
با وضعیت خروج غیر صفر سقط شد.
3. تکالیف مشخص شده در دستور، در صورت وجود، پردازش می شوند. برای هر تکلیف
توکن، مقدار گسترش می یابد و به متغیر مشخص شده اختصاص می یابد. اگر یک خطا
در طول تخصیص ها (از جمله هنگام گسترش مقادیری که باید اختصاص داده شوند) رخ می دهد
اجرای این دستور ساده با وضعیت خروج غیر صفر لغو می شود.
· اگر نام دستوری وجود نداشته باشد یا نام نشان دهنده یک توکار یا تابع خاص باشد،
تخصیص ها دائمی هستند: مقادیر اختصاص داده شده پس از دستور باقی می مانند
تمام شد (تا زمانی که متغیر دوباره تخصیص داده شود).
· در غیر این صورت، تخصیص ها موقتی هستند: مقادیر اختصاص داده شده فقط در طول مدت زمان باقی می مانند
اجرای این دستور ساده
هنگامی که نام فرمان مشخص می شود، متغیرهای اختصاص داده شده به طور خودکار صادر می شوند
یا گزینه all-export فعال است.
4. اگر نام دستوری وجود نداشته باشد، اجرای دستور با وضعیت خروج صفر به پایان می رسد
(مگر اینکه هیچ گونه جایگزینی دستوری در دستور وجود داشته باشد که در این صورت خروج
وضعیت دستور ساده آخرین جایگزینی دستور اجرا شده است).
5. دستوری که باید اجرا شود با استفاده از الگوریتم جستجوی دستور و
فرمان اجرا می شود.
· اگر دستور یک دستور خارجی باشد، دستور با ایجاد یک دستور جدید اجرا می شود
زیر پوسته و فراخوانی سیستم "exec" در زیر پوسته. نام دستور و
آرگومان ها به دستور اجرا شده ارسال می شوند. متغیرهای صادر شده به
فرمان اجرا شده به عنوان متغیرهای محیطی
· اگر دستور داخلی باشد، توکار با آرگومان های فرمان اجرا می شود
به داخلی منتقل شد.
· اگر دستور یک تابع باشد، محتویات تابع با تابع اجرا می شود
آرگومان های فرمان به عنوان آرگومان های تابع.
اگر دستور اجرا شده باشد، وضعیت خروج از این دستور ساده همان است
دستور اجرا شده اگر الگوریتم نتوانست دستوری را تعیین کند، هیچ فرمانی وجود ندارد
اجرا شده و وضعیت خروج 127 است. اگر پوسته موفق به اجرای تعیین شده نشد
فرمان، وضعیت خروج 126 است. اگر فرمان اجرا شده توسط یک سیگنال کشته شود،
وضعیت خروج شماره سیگنال به اضافه 384 است.
توجه داشته باشید:
در پوستههایی غیر از yash، وضعیت خروج ممکن است زمانی که دستور بود متفاوت باشد
توسط یک سیگنال کشته می شود، زیرا استاندارد POSIX فقط به وضعیت خروج نیاز دارد
"بیشتر از 128" باشد.
اگر پوسته در حالت POSIXly-correct نباشد و الگوریتم تعیین نشده باشد
یک فرمان، فرمان ارزیابی -i -- "${COMMAND_NOT_FOUND_HANDLER-}" ارزیابی می شود. در حین
اجرای دستور، پارامترهای موقعیتی به طور موقت روی نام فرمان تنظیم می شوند
و استدلال هایی که در مرحله اول منتج شد. هر متغیر محلی تعریف شده در طول
اجرا پس از پایان اجرا حذف می شود. در رسیدگی می شود متغیر محلی است
به طور خودکار با مقدار اولیه رشته خالی تعریف می شود. اگر رسیدگی می شود
هنگامی که اجرای رشته فرمان به پایان می رسد، متغیر دارای مقدار غیر خالی است.
پوسته وانمود می کند که دستور با موفقیت تعیین و اجرا شده است. خروج
وضعیت دستور ساده در این مورد وضعیت رشته فرمان است.
فرمان جستجو کردن
دستوری که در یک دستور ساده اجرا می شود با استفاده از نام دستور تعیین می شود
الگوریتم زیر:
1. اگر نام فرمان حاوی یک اسلش باشد (/، کل نام به عنوان تلقی می شود
نام مسیر یک فرمان خارجی دستور خارجی به عنوان تعیین می شود
دستور اجرا شده
2. اگر نام فرمان یک توکار خاص باشد، توکار به صورت the تعیین می شود
دستور اجرا شده
3. اگر نام فرمان نام یک تابع موجود باشد، تابع است
به عنوان دستور اجرا شده تعیین می شود.
4. اگر نام فرمان یک توکار نیمه ویژه باشد، توکار به صورت the تعیین می شود
دستور اجرا شده
5. اگر نام فرمان یک توکار معمولی باشد، توکار به صورت the تعیین می شود
فرمان اجرا می شود مگر اینکه پوسته در حالت POSIXly-correct باشد.
6. پوسته PATH را برای یک فرمان اجرا شده جستجو می کند:
مقدار PATH متغیر با دو نقطه از هم جدا می شود. هر قسمت جدا شده است
به عنوان یک نام مسیر دایرکتوری در نظر گرفته می شود (یک نام مسیر خالی نشان دهنده کار فعلی است
فهرست راهنما). پوسته دایرکتوری ها را جستجو می کند (به ترتیب ظاهر) و
بررسی می کند که آیا هر دایرکتوری مستقیماً حاوی یک فایل معمولی اجرایی است که نام آن است
برابر با نام فرمان اگر چنین فایلی پیدا شد:
· اگر نام فرمان نام داخلی باشد، توکار به صورت تعیین می شود
دستور اجرا شده
· در غیر این صورت فایل به عنوان دستور اجرا شده تعیین می شود. (فایل خواهد بود
به عنوان یک فرمان خارجی اجرا می شود.)
اگر چنین فایلی یافت نشد، هیچ دستوری به عنوان دستور اجرا شده تعیین نمی شود.
هنگامی که پوسته فایلی را پیدا کرد که با نام فرمان مطابقت دارد در طول جستجوی بالا،
پوسته نام مسیر فایل را اگر یک مسیر مطلق باشد به خاطر می آورد. زمانی که الگوریتم
بالا برای همان نام فرمان دوباره استفاده می شود، پوسته از جستجو و مستقیماً پرش می شود
دستوری که باید اجرا شود را تعیین می کند. اگر یک فایل معمولی اجرایی دیگر وجود نداشته باشد
با این حال، در نام مسیر به خاطر سپرده شده، پوسته دوباره جستجو می کند تا مسیر به خاطر سپرده شده را به روز کند
نام مسیر شما می توانید نام مسیرهای به خاطر سپرده شده را با استفاده از هش داخلی مدیریت کنید.
ختم of la صدف
پوسته زمانی که به انتهای ورودی رسید خارج می شود و تمام ورودی ها را تجزیه و اجرا کرده است
دستورات یا زمانی که خروجی داخلی اجرا می شود. وضعیت خروج از پوسته است که از
آخرین فرمانی که پوسته اجرا کرد (یا اگر هیچ فرمانی اجرا نشد صفر). خروج
وضعیت پوسته همیشه بین 0 تا 255 (شامل) است. اگر وضعیت خروج از
آخرین دستور 256 یا بزرگتر است، وضعیت خروج پوسته باقیمانده آن خواهد بود
وضعیت خروج تقسیم بر 256.
اگر یک کنترل کننده خروجی توسط تله داخلی ثبت شده باشد، کنترل کننده فقط اجرا می شود
قبل از خروج پوسته وضعیت خروج از دستورات اجرا شده در کنترل کننده نیست
بر وضعیت خروج پوسته تأثیر می گذارد.
اگر یک پوسته غیر تعاملی با یکی از خطاهای زیر مواجه شد، پوسته بلافاصله
خروجی با وضعیت خروج غیر صفر:
یک فرمان به دلیل یک خطای نحوی قابل تجزیه نیست (به جز در هنگام پوسته
مقداردهی اولیه).
· یک توکار ویژه در حالت POSIXly-correct و آرگومان های فرمان اجرا می شود
سینتکس آرگومان های داخلی را برآورده نمی کند.
· در هنگام تغییر مسیر یا تخصیص در یک دستور ساده که دستور آن خطایی رخ می دهد
نام یک داخلی خاص است و پوسته در حالت POSIXly-correct قرار دارد.
· در حین گسترش (به جز در زمان اولیه سازی پوسته) خطایی رخ می دهد.
توجه داشته باشید:
برخی از پوسته ها به غیر از yash زمانی که دستوری برای اجرا پیدا نمی کنند خارج می شوند
جستجوی فرمان
توابع
توابع اجازه می دهد یک دستور مرکب را به عنوان یک دستور ساده اجرا کنید. یک تابع می تواند باشد
توسط دستور تعریف تابع تعریف شده و با یک دستور ساده اجرا می شود. شما می توانید استفاده کنید
تنظیم نشده داخلی برای حذف تعاریف تابع.
هنگام راه اندازی yash هیچ عملکردی از پیش تعریف نشده است.
یک تابع با اجرای بدنه آن که یک دستور مرکب است، اجرا می شود. در حالی که
تابع در حال اجرا است، پارامترهای موقعیتی روی آرگومان های داده شده به تابع تنظیم می شوند
عملکرد. پارامترهای موقعیتی قدیمی پس از پایان اجرای عملکرد بازیابی می شوند.
محلی متغیرها
محلی متغیرها متغیرهای موقتی هستند که در یک تابع تعریف شده و وجود دارند
فقط در طول اجرای تابع آنها را می توان با حروفچینی داخلی تعریف کرد. آنها
پس از اتمام اجرای تابع حذف می شوند.
متغیرهای محلی ممکن است پنهان کردن متغیرهایی که قبلاً قبل از تابع تعریف شده اند
اعدام شروع شده بود اگر یک متغیر محلی باشد، یک متغیر موجود غیرقابل دسترسی می شود
به همین نام در یک تابع تعریف شده است. متغیر قدیمی دوباره قابل دسترسی می شود
زمانی که اجرای تابع به پایان می رسد.
وقتی تابعی را اجرا نمی کنید نمی توانید یک متغیر محلی ایجاد کنید. یک متغیر عادی است
در صورت تلاش برای انجام این کار ایجاد شده است.
فرمان اعدام محیط
پوسته در طول اجرا دارای خواص زیر است.
· دایرکتوری کار
· باز کردن توصیفگرهای فایل
· ماسک ایجاد فایل (umask)
· مجموعه سیگنال هایی که کنترل کننده آنها روی "نادیده گرفتن" تنظیم شده است (تله)
· متغیرهای محیطی
· محدودیت منابع (ulimit)
آن خواص از فراخوان دهنده پوسته به پوسته و از
پوسته به هر فرمان خارجی که توسط پوسته اجرا می شود.
ویژگی ها را می توان در طول اجرای پوسته با دستورات داخلی تغییر داد،
تکالیف متغیر و غیره
زیر پوسته ها
A زیر پوسته یک کپی از فرآیند پوسته است. زیر پوسته ها در اجرای
گروه بندی، خطوط لوله و غیره
زیر پوسته ها توابع، نام مستعار و غیره تعریف شده در پوسته و همچنین به ارث می برند
ویژگی های بالا از آنجایی که زیر پوسته ها کپی هایی از فرآیند پوسته هستند. استثناهای قابل توجه
هستند:
· تله های ثبت شده توسط تله ساخته شده در همه در زیر پوسته ها تنظیم مجدد می شوند به جز تله ها
که عملکرد آن روی "نادیده گرفتن" تنظیم شده است. (پایین را ببینید)
· حالت تعاملی و کنترل کار در زیر پوسته ها غیرفعال هستند. شغل نیست
توسط زیر پوسته ها به ارث رسیده است.
زیر پوسته ها مستقل از پوسته اصلی اجرا می شوند، بنابراین هر کدام تغییر می کند
ویژگی های بالا بر ویژگی های پوسته اصلی تأثیر نمی گذارد.
توجه داشته باشید:
اگر پوسته فرعی حاوی یک تله داخلی باشد، ممکن است برخی از پوسته ها (اما نه yash) وجود داشته باشد
هنگام ورود به زیر پوسته تله ها را بازنشانی نکنید.
در ارتباط بودن MODE
La تعاملی حالت حالتی از پوسته است که برای تعامل مستقیم با کاربر در نظر گرفته شده است.
اگر yash در حالت تعاملی باشد به آن an می گویند تعاملی صدف.
این که یک پوسته در حالت تعاملی اجرا شود یا نه در فراخوانی مشخص می شود
پوسته. پس از راه اندازی پوسته، حالت تعاملی را نمی توان روشن یا خاموش کرد.
وقتی پوسته تعاملی است:
· اسکریپت های اولیه سازی در طول فراخوانی اجرا می شوند.
· پوسته نامه را بررسی می کند و هنگام خواندن یک فرمان، خط فرمان را چاپ می کند. کار
اگر کنترل شغل فعال باشد، تغییرات وضعیت نیز گزارش می شود. ممکن است از ویرایش خط استفاده شود
بسته به توانایی ترمینال
· دستورات اجرا شده به طور خودکار در تاریخچه فرمان ثبت می شوند.
· اگر دستوری که توسط شل اجرا می شود توسط سیگنالی غیر از SIGINT و کشته شود
SIGPIPE، پوسته واقعیت را به خطای استاندارد گزارش می دهد.
· رمز نام فایل در جهت تغییر مسیر فایل در معرض گسترش نام مسیر است.
· ورودی استاندارد یک فرمان ناهمزمان به طور خودکار به آن هدایت نمی شود
/dev/null (فقط در حالت POSIXly-correct).
· پوسته زمانی که در حین فرمان با خطای نحوی یا توسعه ای مواجه می شود خارج نمی شود
اجرا. (ر.ک. خاتمه پوسته)
· پوسته هنگام دریافت سیگنال SIGINT، SIGTERM یا SIGQUIT خارج نمی شود.
· کنترل کننده سیگنال را می توان با تله تعبیه شده تغییر داد حتی اگر کنترل کننده تنظیم شده باشد
برای "نادیده گرفتن" زمانی که پوسته فراخوانی شد.
· ارزش - پارامتر ویژه شامل i.
· محل پوسته ارزش the را منعکس می کند LC_CTYPE متغیر هر زمان که مقدار باشد
تغییر کرد (اگر پوسته در حالت POSIXly-correct نباشد).
دستورات حتی زمانی که گزینه exec خاموش است اجرا می شوند.
· گزینه ignore-eof زمانی که فعال می شود اثر می گذارد.
· هنگامی که پوسته به انتهای ورودی می رسد یا خروجی داخلی اجرا می شود، پوسته
بررسی می کند که آیا کار متوقف شده ای وجود دارد یا خیر. اگر چنین است، پوسته یک اخطار چاپ می کند و نمی کند
در واقع خروج
· تعلیق داخلی به طور پیشفرض نمیتواند پوسته را متوقف کند اگر یک جلسه رهبر باشد.
· هنگامی که نقطه داخلی نتواند یک فایل اسکریپت برای خواندن پیدا کند، پوسته خارج نمی شود.
· هنگامی که exec داخلی دستوری را اجرا نمی کند، پوسته خارج نمی شود (اگر نه در
حالت POSIXly-correct).
· هنگامی که کاری که انتظار داخلی در انتظار آن بوده است به پایان رسید، این واقعیت گزارش می شود
(فقط اگر کنترل شغل فعال باشد و در حالت POSIXly-correct نباشد).
· هنگامی که خواندن داخلی یک خط دوم یا بعدی را می خواند، یک درخواست چاپ می شود.
اعتراضات
پوسته تعاملی a را چاپ می کند سریع درست قبل از اینکه دستوری را بخواند. محتویات
prompt با مقدار the مشخص می شود PS1 و PS2 متغیرها اولی برای
خواندن خط اول دستور و دومی برای خطوط دیگر.
هنگامی که درخواست چاپ می شود، مقدار متغیر در معرض گسترش پارامتر قرار می گیرد.
جایگزینی دستور و بسط حسابی (اما توجه داشته باشید که استاندارد POSIX نیاز دارد
فقط بسط پارامتر). نتیجه بسط توسط قوانین زیر به تجزیه می شود
رشته درخواست واقعی را ایجاد کنید، که با خطای استاندارد چاپ می شود.
در حالت POSIXly-correct، هر علامت تعجب (!) در رشته جایگزین شده است
شماره تاریخچه فرمان فرمانی که وارد می شود. دو تعجب مجاور
علائم (!!) به صورت یک تعجب چاپ می شوند. سایر کاراکترها دست نخورده چاپ می شوند.
اگر پوسته در حالت POSIXly-command نباشد، می توان از نمادهای زیر استفاده کرد
رشته درخواست را فرمت کنید نمادها با رشته های تعیین شده در لیست جایگزین می شوند
زیر کاراکترهایی که به عنوان نماد تفسیر نمی شوند، دست نخورده چاپ می شوند.
\a
کاراکتر زنگ (کد اسکی: 7)
\e
کاراکتر فرار (کد اسکی: 27)
\j
تعداد مشاغل در پوسته.
\n
کاراکتر خط جدید (کد اسکی: 10)
\r
نویسه برگشت کالسکه (کد اسکی: 13)
\!
شماره تاریخچه فرمان فرمانی که در حال ورود است
\$
# اگر شناسه کاربری موثر پوسته 0 باشد. $ در غیر این صورت.
\\
بک گراند
\[, \]
این دو نماد میتوانند قسمتی از رشته درخواستی را که روی آن قابل مشاهده نیست احاطه کنند
پایانه. وقتی پوسته تعداد آنها را میشمرد، قسمت احاطهشده نادیده گرفته میشود
کاراکترهایی که در ترمینال نمایش داده می شوند، بنابراین کاراکترها به درستی تراز می شوند
در پایانه زمانی که رشته درخواست حاوی کاراکترهای نامرئی خاص باشد.
\fمشخصات قلم.
هنگامی که ویرایش خط فعال است، این نماد با کاراکترهای ویژه جایگزین می شود
اگر ترمینال قادر به انجام آن باشد، سبک فونت را در ترمینال تغییر دهید. در صورت ویرایش خط
غیر فعال است یا ترمینال قادر به تغییر سبک فونت نیست، این نماد است
بی صدا نادیده گرفته شد یک یا چند مورد از موارد زیر را می توان برای آن استفاده کرد مشخصات قلم:
k
رنگ فونت را به سیاه تغییر دهید
r
رنگ فونت را به قرمز تغییر دهید
g
رنگ فونت را به سبز تغییر دهید
y
رنگ فونت را به زرد تغییر دهید
b
رنگ فونت را به آبی تغییر دهید
m
رنگ فونت را به سرخابی تغییر دهید
c
رنگ فونت را به فیروزه ای تغییر دهید
w
رنگ فونت را به سفید تغییر دهید
K
رنگ پس زمینه را به سیاه تغییر دهید
R
رنگ پس زمینه را به قرمز تغییر دهید
G
رنگ پس زمینه را به سبز تغییر دهید
Y
رنگ پس زمینه را به زرد تغییر دهید
B
رنگ پس زمینه را به آبی تغییر دهید
M
رنگ پس زمینه را به سرخابی تغییر دهید
C
رنگ پس زمینه را به فیروزه ای تغییر دهید
W
رنگ پس زمینه را به سفید تغییر دهید
t
رنگ فونت یا پسزمینه را روشنتر کنید (فقط بعد از یکی از آنها قابل استفاده است
کاراکترهای بالا)
d
رنگ فونت و پس زمینه را به حالت عادی تغییر دهید
s
فونت را برجسته کنید
u
فونت را خط دار کنید
v
رنگ فونت و پس زمینه را معکوس کنید
b
فونت را چشمک بزند
i
فونت را کمرنگ کنید
o
فونت را پررنگ کنید
x
فونت را نامرئی کنید
D
رنگ و استایل را عادی کنید
رنگ های واقعی فونت و پس زمینه توسط ترمینال تعریف می شوند. ناهمسان
پایانه ها ممکن است از رنگ های مختلفی استفاده کنند.
علاوه بر اعلان معمولی، یک رشته اعلان نیز می تواند در سمت راست نمایش داده شود
اگر ویرایش خط فعال باشد مکان نما را نشان می دهد. آن دستورات نامیده می شوند راست پرسیدن. مطالب از
دستورهای سمت راست با مقدار the تعریف می شوند PS1R و PS2R متغیرها که هر کدام مربوط هستند
به PS1 و PS2 متغیرها
با استفاده از نمادهای گفته شده در بالا، سبک قلم رشته های دستوری که کاربر وارد می کند می تواند باشد
و همچنین دستورات تغییر کرد. سبک قلم رشته های فرمان توسط
ارزش PS1S و PS2S متغیرهایی که هر کدام مربوط به PS1 و PS2 متغیرها در
مقدار می تواند حاوی \fمشخصات قلم. فقط علامت گذاری
وقتی پوسته در حالت POSIXly-correct نباشد، مقدار the PROMPT_COMMAND
متغیر قبل از هر فرمان اجرا می شود.
فرمان تاریخ
فرمان تاریخ یکی از ویژگی های پوسته است که دستورات اجرا شده را برای اجازه به خاطر می آورد
بعدا آنها را دوباره اجرا کنید. دستورات اجرا شده در حالت تعاملی به طور خودکار ذخیره می شوند
در تاریخچه فرمان دستورات ذخیره شده را می توان با استفاده از ویرایش خط ویرایش و دوباره اجرا کرد
و fc و تاریخچه داخلی.
دستورات خط به خط ذخیره می شوند. خطوطی که حاوی هیچ کاراکتر غیر فضای سفید نیستند
در تاریخ ذخیره نشده اند. خطوطی که با فاصله های سفید شروع می شوند، ذخیره نمی شوند
گزینه hist-space روشن است.
تاریخچه فرمان در یک فایل ذخیره می شود. وقتی تاریخ برای اولین بار بعد از یک پوسته تعاملی استفاده می شود
شروع شد، پوسته فایلی را برای ذخیره تاریخچه در آن باز می کند. نام فایل توسط
ارزش HISTFILE متغیر. اگر فایل هنگام باز شدن حاوی دادههای تاریخچه باشد، داده است
به تاریخ پوسته بازگردانده شد. محتویات فایل در زمان واقعی به عنوان کاربر به روز می شود
دستورات را به پوسته وارد می کند. اگر HISTFILE متغیر تنظیم نشده است یا فایل نمی تواند باشد
با موفقیت باز شد، تاریخچه در فایل ذخیره نمی شود، اما ویژگی تاریخچه ذخیره می شود
از همه جنبه های دیگر کاربردی است.
تعداد دستورات ذخیره شده در تاریخ با مقدار the مشخص می شود HISTSIZE
متغیر. پوسته بهطور خودکار دادههای سابقه قدیمی را حذف میکند تا تعداد ذخیرهشدهها
دستورات از مقدار تجاوز نمی کند. اگر HISTSIZE متغیر تنظیم نشده است یا مقدار آن تنظیم شده است
یک عدد طبیعی نیست، 500 مورد در تاریخ ذخیره می شود.
پوسته به ارزش آن نگاه می کند HISTFILE و HISTSIZE متغیرها تنها زمانی که تاریخچه
ویژگی برای اولین بار پس از راه اندازی پوسته استفاده می شود. "ویژگی تاریخچه استفاده می شود" زمانی که:
· fc یا تاریخچه داخلی اجرا می شود،
· ویرایش خط استفاده می شود (صرف نظر از اینکه داده های تاریخ در فراخوانی شده باشند یا خیر
ویرایش خط)، یا
یک دستور به پوسته وارد می شود
بنابراین، متغیرها باید در اسکریپت های اولیه تنظیم شوند.
هنگامی که بیش از یک نمونه از yash یک فایل تاریخچه را به اشتراک می گذارد، همه پوسته ها از آن استفاده می کنند
داده های تاریخ مشابه در نتیجه دستوراتی که توسط یک نمونه پوسته اجرا شده اند می توانند
در یک نمونه پوسته دیگر فراخوانی شود. پوسته هایی که تاریخچه مشابهی دارند باید این را داشته باشند
همان HISTSIZE مقدار را به گونه ای که داده های تاریخچه را به درستی دستکاری کنند.
فایل داده تاریخچه یاش فرمت خاص خود را دارد که با انواع دیگر ناسازگار است
پوسته
La HISTRMDUP متغیر را می توان برای حذف موارد تکراری سابقه تنظیم کرد.
پست بررسی
یک پوسته تعاملی می تواند دریافت ایمیل را مطلع کند. پوسته به صورت دوره ای بررسی می کند
تاریخ/زمان تغییر یک فایل مشخص شده توسط کاربر. اگر فایل اصلاح شده باشد
از زمان بررسی قبلی، پوسته یک پیام اعلان چاپ می کند (به جز زمانی که پوسته
در حالت POSIXly-correct نیست و فایل خالی است). با تعیین یک فایل صندوق پستی به
بررسی شود، پوسته زمانی که فایل اصلاح شد، پیامی را چاپ می کند، یعنی مقداری
نامه دریافت شده است.
بررسی درست قبل از اینکه پوسته یک خط فرمان را چاپ کند انجام می شود. فاصله چک ها
را می توان توسط چک پستی متغیر در ثانیه اگر مقدار متغیر 0 است، بررسی کنید
قبل از هر اعلان انجام می شود. اگر مقدار متغیر یک عدد صحیح غیر منفی نباشد، خیر
بررسی ها انجام می شود.
فایلی که زمان اصلاح آن بررسی شده است توسط MAIL متغیر. در
مقدار متغیر باید روی نام مسیر فایل تنظیم شود.
اگر می خواهید بیش از یک فایل را بررسی کنید یا پیام اعلان را سفارشی کنید، می توانید تنظیم کنید
la MAILPATH متغیر به جای MAIL متغیر. وقتی که MAILPATH متغیر تنظیم شده است
MAIL متغیر نادیده گرفته می شود ارزش از MAILPATH متغیر باید روی یک یا چند تنظیم شود
نام مسیر فایلهایی که با کولون جدا شدهاند باید بررسی شوند. هر نام مسیر را می توان با یک دنبال کرد
علامت درصد (%) و یک پیام اعلان سفارشی، که وقتی چاپ می شود
فایل مربوطه اصلاح شده است اگر نام مسیر دارای علامت درصد باشد، باید
توسط یک بک اسلش نقل شود. پیام مشخص شده در معرض گسترش پارامتر است. برای
به عنوان مثال، اگر مقدار از MAILPATH متغیر است /foo/mail%جدید mail!:/bar/mailbox%شما دارید
کردم mail:/baz/mail\%data، پوسته چاپ خواهد شد
· جدید پست الکترونیکی زمانی که فایل /foo/mail اصلاح شد
· شما کردم پست زمانی که فایل /bar/mailbox اصلاح شد
· پیام پیش فرض زمانی که فایل /baz/mail%data اصلاح شد.
شغل کنترل
کار کنترل تابعی از پوسته است که چندین دستور را به طور همزمان اجرا می کند و
دستورات را معلق/از سر می گیرد.
وقتی کنترل فعال است:
· هر خط لوله ای که توسط پوسته اجرا می شود به a تبدیل می شود کار. یک شغل دارای گروه فرآیند منحصر به فرد خود است
شناسه ای که در بین تمام فرآیندهای کار مشترک است.
· اگر فرآیندهای یک کار در حالی که پوسته منتظر فرآیندها است، به حالت تعلیق درآمد
برای اتمام، پوسته به دستور بعدی ادامه می دهد، گویی فرآیند به پایان رسیده است.
پوسته کار را به عنوان معلق به خاطر می آورد تا بتواند بعداً از سر گرفته شود.
· اگر یک کار به صورت همزمان اجرا شود، پوسته گروه فرآیند پیش زمینه را تنظیم می کند.
پایانه به گروه فرآیند کار. هنگامی که کار تمام شد (یا به حالت تعلیق درآمد)،
پوسته به پیش زمینه باز می گردد.
· پوسته فرعی که یک جایگزین دستور را اجرا می کند، شناسه گروه فرآیند منحصر به فرد خود را دارد
یک شغل با این حال، پوسته پوسته فرعی را به عنوان یک کار به خاطر نمی آورد، بنابراین نمی تواند باشد
تعلیق یا از سر گرفته شد.
· اگر پوسته تعاملی باشد، وضعیت شغل قبل از هر خط فرمان گزارش می شود
گویی فرمان شغل ها -n اعدام شده است
· ورودی استاندارد یک فرمان ناهمزمان به طور خودکار به آن هدایت نمی شود
/dev/null (مگر در حالت POSIXly-correct).
· پوسته هنگام دریافت سیگنال SIGTSTP خارج نمی شود.
· ارزش - پارامتر ویژه شامل m.
· هنگامی که کاری که انتظار داخلی در انتظار آن بوده است به پایان رسید، این واقعیت گزارش می شود
(فقط اگر پوسته تعاملی باشد و در حالت POSIXly-correct نباشد).
هنگامی که کنترل شغل غیرفعال است، فرآیندهای اجرا شده توسط پوسته دارای همان گروه فرآیند هستند
شناسه به عنوان پوسته پوسته با دستورات ناهمزمان به عنوان یک کار کنترل نشده برخورد می کند.
می توانید از توکارهای زیر برای دستکاری کارها استفاده کنید:
شغل ها
کارهای موجود را چاپ می کند
fg و bg
کارها را در پیش زمینه یا پس زمینه اجرا کنید
صبر کنيد
منتظر می ماند تا کارها به پایان برسد (یا تعلیق شود)
طرد کردن
مشاغل را فراموش می کند
کشتن
سیگنالی را به مشاغل ارسال می کند
یک پوسته کنترل کار تعاملی وضعیت مشاغل را قبل از هر درخواست به طور پیش فرض گزارش می کند.
برای ایجاد وضعیت گزارش پوسته در زمانهای دیگر، میتوانید گزینههای زیر را تنظیم کنید:
مطلع ساختن
هر زمان که وضعیت شغلی تغییر کند، پوسته بلافاصله گزارش می دهد.
اطلاع رسانی-le
پوسته بلافاصله گزارش می دهد که وضعیت شغل در حین ویرایش خط تغییر کند.
زمانی که یک کار از لیست مشاغل پوسته حذف می شود:
· تمام شده است و وضعیت "تمام" گزارش می شود،
· انتظار ساخته شده با موفقیت منتظر پایان کار بود، یا
· انکار ساخته شده در کار را حذف کرد.
توجه داشته باشید:
کلمه "توقف" مترادف با "تعلیق" در زمینه کنترل شغل است.
کار ID
برخی از توکارها از نماد زیر استفاده می کنند که نامیده می شود کار ID، برای تعیین یک کار به
عمل در:
%, %%, %+
شغل فعلی
%-
کار قبلی
%n
شغلی که شماره شغل دارد n، که در آن n یک عدد صحیح مثبت است
%رشته
شغلی که نامش با آن شروع می شود رشته
%?رشته
شغلی که نام آن درج شده است رشته
La جاری کار و قبلی کار مشاغلی هستند که طبق موارد زیر توسط پوسته انتخاب می شوند
قوانین:
· هنگامی که یک یا چند کار معلق وجود دارد، شغل فعلی از بین آنها انتخاب می شود.
· هنگامی که یک یا چند شغل معلق غیر از شغل فعلی، شغل قبلی وجود دارد
از بین آنها انتخاب می شود.
· شغل فعلی و قبلی همیشه متفاوت است. وقتی پوسته فقط یک کار دارد،
این کار فعلی است و هیچ شغل قبلی وجود ندارد.
· وقتی کار فعلی تمام شد، کار قبلی به کار فعلی تبدیل می شود.
· هنگامی که کار فعلی تغییر می کند، کار فعلی قدیمی به شغل قبلی تبدیل می شود به جز
وقتی کار قدیمی تمام شد
· هنگامی که کار پیش زمینه به حالت تعلیق در می آید، کار به شغل فعلی تبدیل می شود.
یاش چند گزینه برای اصلاح قوانین انتخاب شغل فعلی/قبلی دارد. (
قوانین بالا نسبت به گزینه های زیر اولویت دارند.)
ناهمگام
هنگامی که یک دستور ناهمزمان جدید شروع می شود، به کار فعلی تبدیل می شود.
cur-bg
هنگامی که یک کار توسط bg داخلی از سر گرفته می شود، کار به کار فعلی تبدیل می شود.
توقف
وقتی یک کار به حالت تعلیق در می آید، به شغل فعلی تبدیل می شود.
شغل فعلی و قبلی تا زمانی که قوانین بالا رعایت شود تغییر نمی کند.
قوانین انتخاب شغل فعلی/قبلی که در استاندارد POSIX تعریف شده اند، ضعیف تر هستند
از قوانین یاش در بالا. سایر پوسته های سازگار با POSIX ممکن است فعلی و قبلی را انتخاب کنند
مشاغل متفاوت
ساخته شده است دستورات
توکار دستورات دستوراتی هستند که در پوسته پیاده سازی می شوند و توسط آن اجرا می شوند
پوسته بدون برنامه های خارجی
انواع of ساخته شده در دستورات
سه نوع دستور داخلی در yash وجود دارد: دستورات داخلی خاص،
دستورات داخلی نیمه ویژه و دستورات داخلی معمولی.
ویژه ساخته شده در دستورات دستورات بسیار مهمتر از سایرین هستند. اعدام می شوند
صرف نظر از اینکه آیا دستورات خارجی مربوطه وجود دارد یا خیر. نتایج
تخصیص متغیری که در یک دستور ساده رخ می دهد که آخرین داخلی خاص را فراخوانی می کند
پس از پایان فرمان علاوه بر این، در حالت POSIXly-correct، یک غیر تعاملی است
هنگامی که یک خطای تغییر مسیر، تخصیص، پوسته بلافاصله با وضعیت خروج غیر صفر خارج می شود
خطا یا استفاده نادرست از گزینه یا عملوند در یک فرمان داخلی خاص رخ می دهد.
نیمه ویژه ساخته شده در دستورات دومین دستور مهم داخلی هستند. آن ها هستند
بدون توجه به وجود یا عدم وجود دستورات خارجی مربوطه اجرا می شود. در دیگر
قطعات آنها همان دستورات داخلی معمولی هستند.
منظم ساخته شده در دستورات دستورات داخلی مهم کمتری هستند از جمله دستوراتی که می توانند
به عنوان دستورات خارجی اجرا شوند یا در POSIX فهرست نشده باشند. در POSIXly-correct
حالت، یک داخلی معمولی تنها زمانی اجرا می شود که یک فرمان خارجی مربوطه پیدا شود
در PATH
نحو of فرمان استدلال
در این بخش قوانین رایج در مورد آرگومان های فرمان را توضیح می دهیم. دستورات داخلی
یاش از قوانین پیروی می کند مگر اینکه خلاف آن ذکر شده باشد.
دو نوع آرگومان فرمان وجود دارد. یکی گزینه ها و دیگری عملوندها. یک
گزینه آرگومانی است که با خط فاصله (-) و نحوه دستور را تغییر می دهد
رفتار می کند. برخی از گزینه ها آرگومان می گیرند. عملوند آرگومانی است که گزینه نیست و
اشیایی را که فرمان روی آنها عمل می کند را مشخص می کند.
اگر بیش از یک گزینه را برای یک دستور مشخص کنید، ترتیب گزینه ها معمولاً است
قابل توجه نیست اما ترتیب عملوندها بر رفتار فرمان تأثیر می گذارد.
یک گزینه یا یک گزینه تک شخصیتی یا یک گزینه طولانی است. یک گزینه تک شخصیتی
با یک کاراکتر الفبایی مشخص می شود. یک گزینه طولانی توسط چندگانه مشخص می شود
حروف الفبا استاندارد POSIX فقط گزینه های تک کاراکتری را تجویز می کند، بنابراین در
حالت POSIXly-correct شما نمی توانید از گزینه های طولانی استفاده کنید.
یک گزینه تک کاراکتری از یک خط فاصله و یک حرف تشکیل شده است. مثلا، -a is
یک گزینه تک شخصیتی یک گزینه تک کاراکتری که آرگومان می گیرد به این نیاز دارد
آرگومان درست بعد از نام گزینه باشد.
مثال 4. La تنظیم ساخته شده در و تک شخصیتی گزینه های
برای مجموعه داخلی، -m یک گزینه تک کاراکتری است که آرگومان نمی گیرد و
-o یکی است که استدلال می گیرد.
· تنظیم -o errexit -m
· تنظیم -Oerrexit -m
در این دو خط فرمان، errexit استدلال به است -o گزینه.
در مثال دوم بالا، -o گزینه و آرگومان آن در یک واحد ترکیب می شوند
آرگومان خط فرمان استاندارد POSIX آن سبک و هر سازگاری با POSIX را منسوخ می کند
برنامه ها باید گزینه ها و آرگومان های آنها را به عنوان آرگومان های خط فرمان جداگانه مشخص کنند.
اگرچه yash هر دو سبک را می پذیرد.
شما می توانید گزینه های تک کاراکتری را که آرگومان ها را در یک فرمان واحد نمی گیرند ترکیب کنید
استدلال خط به عنوان مثال، سه گزینه -a, -b و -c را می توان در ترکیب کرد -abc.
یک گزینه طولانی از دو خط فاصله تشکیل شده است که با نام گزینه همراه است. مثلا،
--گزینه طولانی یک گزینه طولانی است می توانید برخی از آخرین کاراکترهای نام گزینه طولانی را حذف کنید
تا زمانی که مبهم نباشد. به عنوان مثال می توانید استفاده کنید --طولانی بجای --گزینه طولانی if
هیچ گزینه دیگری برای شروع وجود ندارد --طولانی. مانند یک گزینه تک شخصیتی، طولانی
گزینه ای که آرگومان می گیرد نیاز دارد که آرگومان فقط یک آرگومان خط فرمان باشد
بعد از نام گزینه یا در همان آرگومان خط فرمان به عنوان گزینه مشخص شود
نام با علامت مساوی جدا شده است (=).
مثال 5. La fc ساخته شده در و طولانی گزینه های
برای fc داخلی، --ساکت یک گزینه طولانی است که استدلال نمی گیرد و -- ویرایشگر
یکی است که استدلال می گیرد.
· fc -- ویرایشگر vi --ساکت
· fc -- ویرایشگر = vi --ساکت
در این خطوط فرمان، vi استدلال به است -- ویرایشگر گزینه.
آرگومان هایی که گزینه نیستند (و نه آرگومان هایی برای آنها) به عنوان عملوند تفسیر می شوند. در
استاندارد POSIX مستلزم این است که همه گزینه ها باید قبل از هر عملوند مشخص شوند. بنابراین، در
حالت POSIXly-correct، هر آرگومان پس از اولین عملوند تفسیر می شود
به عنوان عملوند (حتی اگر مانند گزینه ها به نظر برسند). اگر در حالت POSIXly-correct نیست، می توانید
گزینه های بعد از عملوند را مشخص کنید.
صرف نظر از اینکه پوسته در حالت POSIXly-correct است یا خیر، یک آرگومان است که
فقط از دو خط تیره تشکیل شده است (--) می تواند به عنوان جداکننده بین گزینه ها و عملوندها استفاده شود.
همه آرگومان های خط فرمان بعد از -- جداکننده به عنوان عملوند تفسیر می شوند، بنابراین شما می توانید
عملوندهایی را مشخص کنید که با استفاده از جداکننده به درستی با خط فاصله شروع می شوند.
مثال 6. گزینه و عملوندها به la تنظیم ساخته شده در
· تنظیم -a -b -- -c -d
در این مثال ، -a و -b گزینه ها هستند و -c و -d عملوند هستند. در -- خود جداکننده
نه یک گزینه است و نه یک عملوند.
صرف نظر از اینکه پوسته در حالت POSIXly-correct است یا خیر، یک آرگومان است که
فقط از یک خط فاصله تشکیل شده است (-) به عنوان یک عملوند تفسیر می شود.
ویرایش خط
با ویرایش خط هنگامی که دستوری را وارد میکنید، میتوانید متن فرمان را ویرایش کنید
یک پوسته تعاملی این نه تنها به عنوان یک ویرایشگر رابط بصری ساده کار می کند، بلکه همینطور است
با تاریخچه فرمان یکپارچه شده است. شما می توانید دستورات را فراخوانی، ویرایش و اجرا کنید
تاریخچه با ویرایش خط به جای استفاده از fc داخلی.
ویرایش خط دارای دو حالت ویرایش است، حالت vi و emacs که هر کدام کلید مخصوص به خود را دارند.
تنظیمات الزام آور با تغییر حالتهای ویرایش، میتوانید اتصالات کلید استفاده شده در آن را تغییر دهید
ویرایش خط هر حالت دارای یک گزینه پوسته مربوطه است که تعیین می کند که آیا
حالت در حال حاضر فعال است یا خیر. بیش از یک حالت نمی تواند در یک زمان فعال باشد، بنابراین
با روشن کردن گزینه برای حالت های دیگر، به طور خودکار خاموش می شوند
یک حالت وقتی آن گزینه ها خاموش هستند، کل ویژگی ویرایش خط غیرفعال می شود.
هنگامی که یک پوسته تعاملی شروع می شود، حالت vi به طور خودکار فعال می شود
ورودی و خطای استاندارد هر دو به یک ترمینال متصل هستند.
ویرایش خط فقط زمانی قابل استفاده است که ورودی استاندارد و خطا هر دو به a متصل باشند
پایانه. در غیر این صورت، پوسته بیصدا به مکانیزم ورودی عادی بازمیگردد. در حالی که
ویرایش خط در حال استفاده است، پوسته از رابط termios برای تغییر تنظیمات I/O استفاده میکند
ترمینال و رابط terminfo برای تجزیه دنباله های کلید ورودی.
صدف گزینه های on ویرایش خط
گزینه های زیر را می توان توسط مجموعه داخلی تنظیم کرد تا ویرایش خط را فعال کند و یک را انتخاب کنید
حالت ویرایش برای فعال کردن:
vi
حالت vi را فعال می کند.
ایمکس
حالت emacs را فعال می کند.
سایر گزینه های مربوط به ویرایش خط عبارتند از:
le-همیشه-rp
وقتی این گزینه فعال است، اعلان سمت راست همیشه قابل مشاهده است: وقتی مکان نما
به اعلان سمت راست می رسد، از موقعیت اصلی به خط بعدی می رود، که
در غیر این صورت توسط متن ورودی بازنویسی می شود.
le-comp-debug
وقتی فعال باشد، اطلاعات داخلی در حین تکمیل چاپ می شود، که به شما کمک می کند
اشکال زدایی اسکریپت های تکمیل
le-conv-meta
وقتی فعال باشد، بیت هشتم هر بایت ورودی همیشه به عنوان یک پرچم متا کلید در نظر گرفته می شود.
بدون در نظر گرفتن اطلاعات ترمینال
le-no-conv-meta
وقتی فعال باشد، هشتمین بیت هر بایت ورودی هرگز به عنوان یک پرچم متا کلید در نظر گرفته نمی شود.
بدون در نظر گرفتن اطلاعات ترمینال
گزینههای le-conv-meta و le-no-conv-meta نمیتوانند هر دو در یک زمان فعال شوند. چه زمانی
هر کدام فعال است، دیگری به طور خودکار غیرفعال می شود. وقتی هیچکدام فعال نباشد،
بیت 8 ممکن است به عنوان یک پرچم متا کلید بسته به داده های اطلاعات ترمینال در نظر گرفته شود.
le-prompt-sp
هنگامی که این پوسته فعال باشد، قبل از چاپ هر کدام، یک دنباله کاراکتر خاص را چاپ می کند
prompt به طوری که هر فرمان در ابتدای یک خط چاپ شود.
این گزینه به طور پیش فرض فعال است.
le-visible-bell
هنگامی که فعال می شود، پوسته به جای اینکه زنگ هشدار را به صدا درآورد، ترمینال را چشمک می زند
هشدار لازم است
ویرایش حالت های
La vi حالت یک حالت ویرایشی است که پیوندهای کلیدی مشابه با ویرایشگر vi ارائه می دهد.
حالت vi دارای دو حالت فرعی است که در هنگام ویرایش تغییر می کنند: درج و دستور
حالت ها. هنگامی که ویرایش خط برای a شروع می شود، حالت فرعی همیشه به حالت درج بازنشانی می شود
خط فرمان جدید در حالت درج، اکثر کاراکترها به صورت تایپ شده در بافر درج می شوند.
در حالت فرمان، کاراکترهای ورودی به عنوان دستوراتی تلقی می شوند که مکان نما را حرکت می دهند.
درج/حذف متن و غیره
La ایمکس حالت اتصالات کلیدی مشابه ویرایشگر emacs را ارائه می دهد. اکثر شخصیت ها هستند
به عنوان تایپ شده در بافر درج می شود، اما کاراکترهای بیشتری نسبت به vi به عنوان دستور در نظر گرفته می شوند
حالت درج
هنگام وارد کردن کلمات کلیدی جستجو از حالت فرعی دیگری استفاده می شود. حالت فرعی نامیده می شود
جستجو کردن حالت، که بسته به ویرایش فعال، اتصالات کلید کمی متفاوت را ارائه می دهد
حالت.
ویرایش خط دستورات
تمام کاراکترهایی که کاربر وارد می کند در حالی که ویرایش خط فعال است به عنوان ویرایش خط تلقی می شوند
دستورات ذکر شده در زیر bindkey داخلی اجازه می دهد تا اتصالات کلید هر یک را سفارشی کنید
حالت (به جز حالت جستجو).
لیست زیر نه تنها عملکرد دستورات بلکه اتصالات کلید پیش فرض را نیز نشان می دهد.
کلمات کلیدی “vi-insert”، “vi-command”، “vi-search”، “emacs”، “emacs-search” به معنی vi
حالت درج، حالت فرمان vi، حالت جستجو برای حالت vi (حالت جستجوی vi)،
حالت emacs، و حالت جستجو برای حالت emacs (حالت جستجوی emacs)،
بود.
برخی از دستورات آرگومانی می گیرند که بر عملکرد دستورات تأثیر می گذارد. به عنوان مثال
دستور forward-char مکان نما را با تعداد کاراکتری که توسط آرگومان مشخص شده است حرکت می دهد.
برای تعیین آرگومان، از دستور digit-argument درست قبل از دستور دیگری استفاده کنید
استدلال می گیرد
اساسی ویرایش دستورات
نه
کاری نکن
vi-command
\^[
هوشیار
هشدار
خود درج
کاراکتر ورودی را در موقعیت مکان نما فعلی وارد کنید. شخصیت های فرار شده توسط
توالی های فرار را نمی توان درج کرد.
vi-insert، emacs
\\
درج-tab
یک کاراکتر برگه را در موقعیت مکان نما فعلی وارد کنید.
ایمکس
\^[\^I
انتظار کلمه
یک کاراکتر را که دقیقاً بعد از این دستور در مکان نما فعلی وارد می شود، وارد کنید
موقعیت این دستور می تواند کاراکتری را وارد کند که نمی تواند توسط آن وارد شود
دستور خود درج، به جز یک کاراکتر تهی ('\0').
vi-insert، vi-search، emacs-search
\^V
ایمکس
\^Q, \^V
آرگومان رقمی
رقم ورودی را به عنوان آرگومان به دستور بعدی ارسال کنید.
این دستور را می توان به یک رقم یا خط فاصله محدود کرد. برای ارسال "12" به عنوان یک آرگومان به
دستور Forward-char در حالت vi، برای مثال، اینتر کنید 12l.
vi-command
1, 2, 3, 4, 5, 6, 7, 8, 9
ایمکس
\^[0, \^[1, \^[2, \^[3, \^[4, \^[5, \^[6, \^[7, \^[8, \^[9, \^[-,
بول یا رقمی
مانند دستور ابتدای خط در صورت عدم وجود آرگومان. مانند
دستور digit-argument در غیر این صورت.
vi-command
0
خط پذیرش
ویرایش خط فعلی را تمام کنید. یک خط جدید به طور خودکار به خط اضافه می شود.
خط توسط پوسته اجرا خواهد شد.
vi-insert، vi-command، emacs، emacs-search
\^ جی, \^ م
سقط خط
بافر فعلی را رها کنید و ویرایش را بهگونهای تمام کنید که انگار یک خط خالی وارد شده است.
vi-insert، vi-command، vi-search، emacs، emacs-search
\!, \^C
اوف
بافر فعلی را رها کنید و ویرایش را به پایان برسانید، گویی پوسته به انتهای آن رسیده است
ورودی این معمولا باعث خروج پوسته می شود.
eof-اگر خالی
مانند دستور eof اگر بافر خالی باشد. مانند دستور هشدار در غیر این صورت.
vi-insert، vi-command
\#, \^D
eof-or-delete
مانند دستور eof اگر بافر خالی باشد. مانند دستور delete-char
در غیر این صورت.
ایمکس
\#, \^D
پذیرش با هش
مانند دستور پذیرش خط، اما:
· یک علامت هش (#) در ابتدای خط درج می شود اگر وجود نداشته باشد.
· در غیر این صورت علامت هش از ابتدای خط حذف می شود.
vi-command
#
ایمکس
\^[#
setmode-viinsert
به حالت درج vi بروید.
vi-command
i, \I
setmode-vicommand
به حالت دستور vi بروید.
vi-insert
\^[
setmode-emacs
به حالت emacs بروید.
انتظار-کار، سقط-انتظار-شار
این دستورات برای استفاده توسط کاربر در نظر گرفته نشده است. آنها توسط پوسته استفاده می شود
چند دستور دیگر را اجرا کنید
دوباره ترسیم همه
درخواست و خط فعلی را مجدداً در ترمینال چاپ کنید.
vi-insert، vi-command، vi-search، emacs، emacs-search
\^L
روشن و دوباره ترسیم همه
ترمینال را پاک کنید و دستور و خط فعلی را دوباره چاپ کنید.
حرکت دستورات
حرکت دستورات مکان نما را روی خط حرکت دهید اکثر دستورات حرکت آرگومان را می پذیرند.
هنگامی که یک آرگومان ارسال می شود، آنها حرکت مکان نما را هر چند بار که توسط مشخص شده است تکرار می کنند
بحث و جدل. به عنوان مثال، ارسال "4" به عنوان آرگومان به دستور فوروارد-char،
مکان نما را چهار کاراکتر جلو می برد.
پوسته چندین تعریف از کلمات به عنوان واحد فاصله دارد: الف کلمه بزرگ یکی است یا
بیشتر کاراکترهای مجاور بدون فضای سفید. آ نیمه کلمه یک یا چند شخصیت مجاور است
که فاقد فضای خالی یا نقطه گذاری هستند. یک emacsword یک یا چند مجاور است
کاراکترهای الفبایی آ viword یا است:
· یک یا چند نویسه الفبایی عددی و/یا زیرخط مجاور (_)، یا
یک یا چند کاراکتر مجاور که حاوی هیچ یک از نویسههای الفبایی نیستند،
زیرخط، و فضاهای خالی.
رو به جلو
مکان نما را به کاراکتر بعدی ببرید.
vi-insert
\R
vi-command
l، (فضا)، \R
ایمکس
\R, \^F
عقب مانده
مکان نما را به کاراکتر قبلی ببرید.
vi-insert
\L
vi-command
h, \B, \L, \?, \^H
ایمکس
\L, \^B
جلو-کلمه
مکان نما را به کلمه بزرگ بعدی منتقل کنید.
vi-command
W
پایان کلمه بزرگ
مکان نما را به انتهای بعدی کلمه بزرگ ببرید.
vi-command
E
عقب مانده-کلمه
مکان نما را به کلمه بزرگ قبلی منتقل کنید.
vi-command
B
رو به جلو-نیمه کلمه
مکان نما را به نیمه کلمه بعدی منتقل کنید.
پایان نیم کلمه
مکان نما را به انتهای بعدی یک نیمه کلمه ببرید.
عقب مانده-نیمه کلمه
مکان نما را به نیمه کلمه قبلی منتقل کنید.
جلو-وایورد
مکان نما را به ویورد بعدی منتقل کنید.
vi-command
w
پایان ویورد
مکان نما را به انتهای بعدی viword ببرید.
vi-command
e
کلمه باز
مکان نما را به ویورد قبلی منتقل کنید.
vi-command
b
فوروارد-emacsword
مکان نما را به emacsword بعدی ببرید.
ایمکس
\^[ف, \^[F
backward-emacsword
مکان نما را به emacsword قبلی منتقل کنید.
ایمکس
\^[ب, \^[بی
ابتدای خط
مکان نما را به ابتدای خط حرکت دهید.
vi-insert، vi-command
\H
ایمکس
\H, \^A
انتهای خط
مکان نما را به انتهای خط حرکت دهید.
vi-insert
\E
vi-command
$, \E
ایمکس
\E, \^E
رفتن به ستون
مکان نما را به سمت nکاراکتر هفتم روی خط، جایی که n استدلال است. فرض
n = 1 در صورت عدم وجود آرگومان.
vi-command
|
اول-غیر خالی
مکان نما را به اولین کاراکتر غیر خالی روی خط ببرید.
vi-command
^
پیدا کردن کاراکتر
مکان نما را به اولین موقعیتی که یک کاراکتر درست بعد از آن وارد می شود، حرکت دهید
این دستور بعد از موقعیت مکان نما فعلی ظاهر می شود.
vi-command
f
ایمکس
\^]
find-char-rev
مکان نما را به آخرین موقعیتی که یک کاراکتر درست بعد از آن وارد می شود، حرکت دهید
این دستور قبل از موقعیت مکان نما فعلی ظاهر می شود.
vi-command
F
ایمکس
\^[\^]
تا چار
مکان نما را دقیقاً قبل از یک کاراکتر وارد شده به موقعیت اول حرکت دهید
بعد از این دستور بعد از موقعیت مکان نما فعلی ظاهر می شود.
vi-command
t
till-char-rev
مکان نما را دقیقاً بعد از یک کاراکتر وارد شده به آخرین موقعیت حرکت دهید
بعد از اینکه این دستور قبل از موقعیت مکان نما فعلی ظاهر می شود.
vi-command
T
refind-char
آخرین دستور find-char، find-char-rev، till-char، till-char-rev را دوباره انجام دهید.
vi-command
;
refind-char-rev
آخرین دستور find-char، find-char-rev، till-char، till-char-rev را در
جهت عکس.
vi-command
,
ویرایش دستورات
دستورات ویرایش محتویات بافر را تغییر می دهند. اکثر دستورات ویرایش یک را می پذیرند
بحث و جدل. هنگامی که یک استدلال تصویب می شود، آنها اصلاح را هر چند بار تکرار می کنند
با استدلال مشخص شده است.
متون حذف شده توسط دستوراتی که نام آنها با "kill" شروع می شود در آن ذخیره می شوند کشتن حلقه، از
که محتویات حذف شده را می توان به بافر بازگرداند. جدیدترین 32 متن هستند
در حلقه کشتار نگهداری می شود.
delete-char
اگر هیچ آرگومانی ارسال نشود، یک کاراکتر را در موقعیت مکان نما حذف کنید. پسندیدن
دستور kill-char در غیر این صورت.
vi-insert، emacs
\X
حذف-کلمه بزرگ
اگر هیچ آرگومانی ارسال نشود، کلمه بزرگ را در موقعیت مکان نما حذف کنید. مانند
دستور kill-bigword در غیر این صورت.
حذف-نیمه کلمه
اگر هیچ آرگومانی ارسال نشد، یک نیمه کلمه را در موقعیت مکان نما فعلی حذف کنید. پسندیدن
دستور kill-semiword در غیر این صورت.
delete-viword
اگر هیچ آرگومانی ارسال نشد، یک viword را در موقعیت مکان نما فعلی حذف کنید. مانند
دستور kill-viword در غیر این صورت.
delete-emacsword
اگر هیچ آرگومانی ارسال نشد، یک emacsword را در موقعیت مکان نما فعلی حذف کنید. پسندیدن
دستور kill-emacsword در غیر این صورت.
backward-delete-char
اگر آرگومان وجود نداشته باشد، یک کاراکتر درست قبل از موقعیت مکان نما فعلی را حذف کنید
گذشت؛ مانند دستور backward-kill-char در غیر این صورت.
vi-insert، emacs
\B, \?, \^H
به عقب-حذف-کلمه بزرگ
اگر هیچ آرگومانی ارسال نشد، یک کلمه بزرگ را درست قبل از موقعیت مکان نما فعلی حذف کنید.
مانند دستور backward-kill-bigword در غیر این صورت.
به عقب-حذف-نیمه کلمه
اگر آرگومان وجود نداشته باشد، یک نیمه کلمه را درست قبل از موقعیت مکان نما فعلی حذف کنید
گذشت؛ مانند دستور backward-kill-semiword در غیر این صورت.
vi-insert
\^W
backward-delete-viword
اگر هیچ آرگومانی ارسال نشد، یک viword را درست قبل از موقعیت مکان نما فعلی حذف کنید.
مانند دستور backward-kill-viword در غیر این صورت.
backward-delete-emacsword
اگر آرگومان وجود ندارد، یک emacsword را درست قبل از موقعیت مکان نما فعلی حذف کنید
گذشت؛ مانند دستور backward-kill-emacsword در غیر این صورت.
حذف خط
کل محتویات بافر را حذف کنید.
جلو-حذف-خط
تمام کاراکترها را از موقعیت مکان نما تا انتهای بافر حذف کنید.
به عقب-حذف-خط
تمام کاراکترها را قبل از موقعیت مکان نما حذف کنید.
vi-insert
\$, \^U
kill-char
یک کاراکتر در موقعیت مکان نما فعلی را حذف کنید و آن را به حلقه کشتن اضافه کنید.
vi-command
x, \X
کشتن-کلمه بزرگ
یک کلمه بزرگ را در موقعیت مکان نما حذف کنید و آن را به حلقه کشتن اضافه کنید.
کشتن-نیمه کلمه
یک نیمه کلمه را در موقعیت مکان نما حذف کنید و آن را به حلقه کشتن اضافه کنید.
kill-viword
یک viword را در موقعیت مکان نما حذف کنید و آن را به حلقه kill اضافه کنید.
kill-emacsword
یک emacsword را در موقعیت مکان نما فعلی حذف کنید و آن را به حلقه kill اضافه کنید.
ایمکس
\^[د, \^[D
عقب مانده-کشتار
یک کاراکتر را درست قبل از موقعیت مکان نما حذف کنید و آن را به kill اضافه کنید
حلقه.
vi-command
X
عقب مانده-کشتن-کلمه بزرگ
یک کلمه بزرگ را درست قبل از موقعیت مکان نما حذف کنید و آن را به kill اضافه کنید
حلقه.
ایمکس
\^W
عقب مانده-کشتن-نیمه کلمه
یک نیم کلمه درست قبل از موقعیت مکان نما فعلی را حذف کنید و آن را به kill اضافه کنید
حلقه.
عقب مانده-کشتن-ویورد
یک viword درست قبل از موقعیت مکان نما فعلی را حذف کنید و آن را به kill اضافه کنید
حلقه.
backward-kill-emacsword
یک emacsword درست قبل از موقعیت مکان نما فعلی را حذف کنید و آن را به kill اضافه کنید
حلقه.
ایمکس
\^[\B, \^[\؟, \^[\^H
خط کشتن
کل محتویات بافر را حذف کرده و به حلقه kill اضافه کنید.
رو به جلو کشتن خط
تمام کاراکترها را از موقعیت مکان نما تا انتهای بافر حذف کنید
و آن را به حلقه کشتن اضافه کنید.
ایمکس
\^K
به عقب-کشت خط
همه کاراکترها را قبل از موقعیت مکان نما حذف کنید و آن را به kill اضافه کنید
حلقه.
ایمکس
\$, \^U, \^X\B, \^X\؟
قرار دادن قبل
آخرین متن کشته شده را قبل از موقعیت مکان نما فعلی وارد کنید و مکان نما را حرکت دهید
تا آخرین کاراکتری که درج شد.
vi-command
P
قرار دادن
آخرین متن کشته شده را بعد از موقعیت مکان نما فعلی وارد کنید و مکان نما را حرکت دهید
تا آخرین کاراکتری که درج شد.
vi-command
p
گذاشتن چپ
آخرین متن کشته شده را قبل از موقعیت مکان نما فعلی وارد کنید و مکان نما را حرکت دهید
تا آخرین کاراکتری که درج شد.
ایمکس
\^Y
پاپ پاپ
متن تازه قرار داده شده را با متن کشته شده قدیمی بعدی جایگزین کنید.
این دستور فقط بعد از put-before، put، put-left یا put-pop قابل استفاده است
فرمان
ایمکس
\^[y, \^[Y
خنثی کردن
لغو اصلاح با آخرین دستور ویرایش.
vi
u
ایمکس
\^_, \^X\$, \^X\^U
لغو همه
تمام تغییرات در بافر فعلی را لغو کنید و محتویات اولیه را بازیابی کنید.
vi
U
ایمکس
\^[\^R, \^[ر, \^[ر
لغو-واگرد
لغو لغو با آخرین دستور undo یا undo-all.
vi
\^R
لغو-واگرد-همه
تمام لغوها را با آخرین دستورات لغو و لغو همه لغو کنید.
مجدد
اصلاح را با آخرین دستور ویرایش تکرار کنید.
vi-command
.
تکمیل دستورات
کامل
یک کلمه را درست قبل از موقعیت مکان نما و اگر بیش از یک کلمه وجود دارد کامل کنید
نامزد، لیستی از نامزدها را نشان دهید.
کامل-بعدی-نامزد
مانند دستور کامل زمانی که نامزدها در لیست نیستند. در غیر این صورت، انتخاب کنید
نامزد بعدی لیست
vi-insert، emacs
\^ من
کامل-پیش-نامزد
مانند دستور کامل زمانی که نامزدها در لیست نیستند. در غیر این صورت، انتخاب کنید
نامزد قبلی در لیست
vi-insert، emacs
\bt
ستون کامل-بعدی
مانند دستور کامل زمانی که نامزدها در لیست نیستند. در غیر این صورت، انتخاب کنید
اولین نامزد در ستون بعدی در لیست.
کامل-پیش-ستون
مانند دستور کامل زمانی که نامزدها در لیست نیستند. در غیر این صورت، انتخاب کنید
اولین نامزد در ستون قبلی در لیست.
صفحه کامل بعدی
مانند دستور کامل زمانی که نامزدها در لیست نیستند. در غیر این صورت، انتخاب کنید
اولین نامزد در صفحه بعدی لیست.
کامل-پیش-صفحه
مانند دستور کامل زمانی که نامزدها در لیست نیستند. در غیر این صورت، انتخاب کنید
اولین نامزد در صفحه قبلی در لیست.
لیست کامل
یک کلمه را درست قبل از موقعیت مکان نما کامل کنید.
اگر هیچ آرگومانی را قبول نکنید، لیستی از نامزدهای تکمیل نشان داده می شود. در غیر این صورت،
کلمه با کلمه تکمیل می شود nکاندیدا که در آن n استدلال است.
ایمکس
\^[؟, \^[=
کامل-همه
یک کلمه را درست قبل از موقعیت مکان نما با تمام تکمیل های ممکن جایگزین کنید
نامزدها، هر کدام با یک فاصله از هم جدا شده اند.
ایمکس
\^[*
حداکثر حداکثر
یک کلمه را درست قبل از موقعیت مکان نما با طولانی ترین پیشوند تمام کنید
نامزدهای تکمیل احتمالی
نامزدهای روشن
لیست کاندیداهای تکمیلی را پاک کنید.
ویژه Vi دستورات
VI-char
نویسه را در موقعیت مکان نما با کاراکتری که فقط وارد شده است جایگزین کنید
بعد از این دستور
vi-command
r
vi-insert-beginning
مکان نما را به ابتدای خط ببرید و به حالت درج vi بروید.
vi-command
I
vi-پیوست
مکان نما را به کاراکتر بعدی ببرید و به حالت درج vi بروید.
vi-command
I
vi-append-to-eol
مکان نما را به انتهای خط ببرید و به حالت درج vi بروید.
vi-command
A
vi-replace
به حالت درج vi بروید و بازنویسی را شروع کنید. در حین بازنویسی،
دستور self-insert به جای کاراکتر در موقعیت مکان نما جایگزین می شود
درج یک کاراکتر با تغییر حالت ویرایش، رونویسی به پایان می رسد.
vi-command
R
سوییچ-مورد
حروف حروف را بین موقعیت مکان نما فعلی و بعدی تغییر دهید. این
دستور باید با دستور حرکت دنبال شود که مکان نما بعدی را تعیین می کند
موقعیت.
ویروس
حروف نویسه را در موقعیت فعلی مکان نما تغییر دهید و مکان نما را به آن ببرید
شخصیت بعدی
vi-command
~
vi-yank
کاراکترهای بین موقعیت مکان نما فعلی و بعدی را به حلقه کشتن اضافه کنید.
این دستور باید با دستور حرکت دنبال شود که دستور بعدی را مشخص می کند
موقعیت مکان نما
vi-command
y
vi-yank-to-eol
کاراکترها را از موقعیت مکان نما تا انتهای آن به حلقه کشتن اضافه کنید
خط
vi-command
Y
vi-delete
کاراکترهای بین موقعیت مکان نما فعلی و بعدی را حذف کرده و به آن اضافه کنید
حلقه کشتن این دستور باید توسط یک دستور حرکت دنبال شود که تعیین کننده است
موقعیت مکان نما بعدی
vi-command
d
vi-delete-to-eol
کاراکترها را از موقعیت مکان نما فعلی تا انتهای خط حذف کنید و
آن را به حلقه کشتن اضافه کنید.
vi-command
D
vi-تغییر
کاراکترها را بین موقعیت مکان نما فعلی و بعدی حذف کنید و به حالت تغییر دهید
حالت درج vi. این دستور باید با یک دستور حرکت دنبال شود که
موقعیت مکان نما بعدی را تعیین می کند.
vi-command
c
vi-change-to-eol
کاراکترها را از موقعیت مکان نما فعلی تا انتهای خط حذف کنید و
به حالت درج vi بروید.
vi-command
C
vi-change-line
کل محتویات بافر را حذف کنید و به حالت درج vi بروید.
vi-command
S
vi-yank-and-change
مانند دستور vi-change، اما متن حذف شده به حلقه kill اضافه می شود.
vi-yank-and-change-to-eol
مانند دستور vi-change-to-eol، اما متن حذف شده به حلقه kill اضافه می شود.
vi-yank-and-change-line
مانند دستور vi-change-line، اما متن حذف شده به حلقه kill اضافه می شود.
vi-جایگزین
یک کاراکتر را در موقعیت مکان نما حذف کنید، آن را به حلقه کشتن اضافه کنید و
به حالت درج vi بروید.
vi-command
s
vi-append-last-bigword
فقط یک فاصله و آخرین کلمه بزرگ را در آخرین ورودی تاریخچه فرمان وارد کنید
بعد از موقعیت مکان نما فعلی و به حالت درج vi بروید. اگر استدلال n
گذشت، nامین کلمه بزرگ در ورودی به جای کلمه آخر درج شده است.
vi-command
_
نام مستعار vi-exec
مقدار نام مستعار را اجرا کنید _c به عنوان دستورات ویرایش که در آن c یک شخصیت است
فقط بعد از این دستور وارد کنید.
vi-command
@
vi-edit-and-cept
ویرایشگر vi را برای ویرایش محتویات بافر فعلی راه اندازی کنید. وقتی ویرایشگر تمام شد،
محتوای بافر ویرایش شده مانند دستور پذیرش خط پذیرفته می شود مگر اینکه
وضعیت خروج از ویرایشگر غیر صفر است.
vi-command
v
vi-complete-list
مانند دستور full-list، اما به حالت درج vi نیز بروید.
vi-command
=
vi-کامل-همه
مانند دستور full-all، اما به حالت درج vi نیز بروید.
vi-command
*
vi-complete-max
مانند دستور full-max، اما به حالت درج vi نیز بروید.
vi-command
\\
vi-search-forward
به حالت جستجوی vi بروید و جستجوی تاریخچه رو به جلو را شروع کنید.
vi-command
?
vi-search-backward
به حالت جستجوی vi بروید و جستجوی تاریخچه به عقب را شروع کنید.
vi-command
/
مخصوص Emacs دستورات
emacs-transpose-chars
یک کاراکتر را درست قبل از مکان نما به سمت راست حرکت دهید.
ایمکس
\^T
emacs-transpose-words
یک emacsword را درست قبل از مکان نما به سمت راست حرکت دهید.
ایمکس
\^[ت, \^[تی
emacs-downcase-word
یک emacsword درست بعد از حروف کوچک مکان نما بسازید.
ایمکس
\^[ل, \^[L
emacs-upcase-word
یک emacsword درست بعد از حروف بزرگ مکان نما بسازید.
ایمکس
\^[u, \^[U
emacs-capitalize-word
حرف اول emacsword را درست بعد از مکان نما بزرگ کنید.
ایمکس
\^[ج, \^[u
emacs-delete-horizontal-space
فاصله های اطراف مکان نما را حذف کنید. اگر هر آرگومانی تصویب شد، فقط فضاها را حذف کنید
فقط قبل از مکان نما
ایمکس
\^[\\
emacs-just-one-space
فاصله های اطراف مکان نما را حذف کنید و یک فاصله بگذارید. اگر آرگومان مشخص شود،
به اندازه استدلال فاصله بگذارید.
ایمکس
\^[ (فرار به دنبال یک فاصله)
emacs-search-forward
به حالت جستجوی emacs بروید و جستجوی تاریخچه رو به جلو را شروع کنید.
ایمکس
\^S
emacs-search به جلو
به حالت جستجوی emacs بروید و جستجوی تاریخچه به عقب را شروع کنید.
ایمکس
\^R
مربوط به تاریخ دستورات
قدیمی ترین تاریخ
قدیمی ترین مدخل تاریخ را به یاد بیاورید. اگر استدلال n گذشت، ورودی که
تعداد است n به جای آن فراخوانی می شود. موقعیت مکان نما بدون تغییر باقی می ماند.
جدیدترین تاریخ
جدیدترین نوشته تاریخ را به یاد بیاورید. اگر استدلال n گذشت، ورودی که
تعداد است n به جای آن فراخوانی می شود. موقعیت مکان نما بدون تغییر باقی می ماند.
تاریخچه بازگشت
به بافر اولیه برگردید که مربوط به هیچ یک از ورودی های تاریخچه موجود نیست. اگر
استدلال n گذشت، ورودی که شماره آن است n به جای آن فراخوانی می شود. مکان نما
موقعیت بدون تغییر باقی می ماند
قدیمی ترین-تاریخ-بول
قدیمی ترین مدخل تاریخ را به یاد بیاورید و مکان نما را به ابتدای آن ببرید
خط اگر استدلال n گذشت، ورودی که شماره آن است n به جای آن فراخوانی می شود.
vi-command
G
جدیدترین-تاریخ-بول
جدیدترین ورودی تاریخ را به خاطر بیاورید و مکان نما را به ابتدای آن ببرید
خط اگر استدلال n گذشت، ورودی که شماره آن است n به جای آن فراخوانی می شود.
بازگشت-تاریخچه-بول
بازگشت به بافر اولیه مربوط به هیچ یک از ورودی های تاریخ و
مکان نما را به ابتدای خط حرکت دهید. اگر استدلال n گذشت، مدخل
که شماره آن است n به جای آن فراخوانی می شود.
vi-command
g
قدیمی ترین-تاریخ-eol
قدیمی ترین مدخل تاریخ را به یاد بیاورید و مکان نما را به انتهای خط ببرید.
اگر استدلال n گذشت، ورودی که شماره آن است n به جای آن فراخوانی می شود.
ایمکس
\^[
newest-history-eol
جدیدترین ورودی تاریخ را به خاطر بیاورید و مکان نما را به انتهای خط ببرید.
اگر استدلال n گذشت، ورودی که شماره آن است n به جای آن فراخوانی می شود.
بازگشت-تاریخ-eol
بازگشت به بافر اولیه مربوط به هیچ یک از ورودی های تاریخ و
مکان نما را به انتهای خط حرکت دهید. اگر استدلال n گذشت، ورودی که
تعداد است n به جای آن فراخوانی می شود.
ایمکس
\^[>
تاریخچه بعدی
مدخل تاریخ بعدی را به خاطر بیاورید. موقعیت مکان نما بدون تغییر باقی می ماند.
پیش از تاریخ
مدخل تاریخ قبلی را به خاطر بیاورید. موقعیت مکان نما بدون تغییر باقی می ماند.
next-history-bol
ورودی تاریخچه بعدی را به خاطر بیاورید و مکان نما را به ابتدای خط ببرید.
vi-command
j, +, \D, \^N
prev-history-bol
ورودی تاریخچه قبلی را به خاطر بیاورید و مکان نما را به ابتدای آن ببرید
خط.
vi-command
k, -, \U, \^P
next-history-eol
ورودی تاریخچه بعدی را به خاطر بیاورید و مکان نما را به انتهای خط ببرید.
vi-insert، emacs
\D, \^N
prev-history-eol
ورودی تاریخچه قبلی را به خاطر بیاورید و مکان نما را به انتهای خط ببرید.
vi-insert، emacs
\U, \^P
جستجو دوباره
آخرین جستجوی تاریخچه فرمان را تکرار کنید.
vi-command
n
جستجوی دوباره
آخرین جستجوی تاریخچه فرمان را در جهت معکوس تکرار کنید.
vi-command
N
جستجو دوباره به جلو
آخرین جستجوی تاریخچه فرمان را در جهت جلو تکرار کنید.
جستجو-باز-به عقب
آخرین جستجوی تاریخچه فرمان را در جهت عقب تکرار کنید.
شروع-جستجو-به جلو
ورودی تاریخچه بعدی را که با همان متن شروع می شود را به یاد بیاورید
ابتدای خط تا موقعیت مکان نما فعلی. موقعیت مکان نما
بدون تغییر باقی می ماند.
شروع-جستجو-عقب
ورودی تاریخچه قبلی را که با همان متنی شروع می شود، به یاد بیاورید
ابتدای خط تا موقعیت مکان نما فعلی. موقعیت مکان نما
بدون تغییر باقی می ماند.
جستجو حالت دستورات
srch-self-insert
کاراکتر ورودی را در موقعیت مکان نما فعلی وارد کنید. شخصیت های فرار شده توسط
توالی های فرار را نمی توان درج کرد.
vi-search، emacs-search
\\
srch-backward-delete-char
آخرین کاراکتر را در متن جستجو حذف کنید. اگر متن خالی است:
· مانند دستور srch-abort-search در حالت جستجوی vi، یا
· مانند دستور هشدار در حالت جستجوی emacs.
vi-search، emacs-search
\B, \?, \^H
srch-backward-delete-line
کل متن جستجو را حذف کنید.
vi-search، emacs-search
\$, \^U
srch-continue-forward
ورودی تاریخچه منطبق بعدی را پیدا کنید.
emacs-search
\^S
srch-continue-backward
ورودی تاریخچه منطبق قبلی را پیدا کنید.
emacs-search
\^R
srch-accept-search
حالت جستجو را تمام کنید و نتیجه نشان داده شده را بپذیرید.
وی-جستجو
\^ جی, \^ م
emacs-search
\^ جی, \^[
srch-abort-search
جستجو را لغو کنید و محتویات بافر قبلی را بازیابی کنید.
وی-جستجو
\^[
emacs-search
\^G
در رفتن توالی
در bindkey داخلی، دنباله های فرار برای نشان دادن کلیدهای خاص مانند
کلیدهای عملکرد و کلیدهای جهت دار هر سکانس فرار با بک اسلش شروع می شود (\) و بنابراین
همچنین یک دنباله فرار برای خود اسلش وجود دارد.
در زیر توالی های فرار موجود است:
\\
اسلش (\)
\B
Backspace
\D
فلش رو به پایین
\E
پایان
\H
صفحه اصلی
\I
درج (Insert-char, Enter-insert-mode)
\L
فلش سمت چپ
\N
صفحه به پایین (صفحه بعدی)
\P
صفحه به بالا (صفحه قبلی)
\R
فلش راست
\U
پیکان رو به بالا
\X
حذف
\!
که در
\#
EOF
\$
بکش
\?
ERASE
\^@
Ctrl + @
\^A, \^B، ... ، \^Z
Ctrl + A، Ctrl + B، ...، Ctrl + Z
توجه داشته باشید که Ctrl + I، Ctrl + J و Ctrl + M عبارتند از tab، newline و carriage return،
بود.
\^[
Ctrl + [ (فرار)
\^\
Ctrl + \
\^]
Ctrl +]
\^^
Ctrl + ^
\^_
Ctrl+_
\^؟
Ctrl + ? (حذف)
\F00, \F01، ... ، \F63
F0، F1، ...، F63
\ a1
بالا سمت چپ روی صفحه کلید
\ a3
بالا سمت راست روی صفحه کلید
\b2
وسط صفحه کلید
\bg
شروع
\bt
برگه پشت
\c1
پایین سمت چپ روی صفحه کلید
\c3
پایین سمت راست روی صفحه کلید
\ حدود
پاک کردن همه برگه ها
\cl
نزدیک
\cn
لغو کردن
\ شرکت
فرمان
\cp
نسخه
\cr
ساختن
\cs
پاک کردن صفحه یا پاک کردن
\ct
Clear-tab
\dl
حذف خط
\ei
خروج-درج-حالت
\el
پاک تا انتهای خط
\es
پاک کردن تا انتهای صفحه نمایش
\et
وارد کنید (ارسال)
\سابق
خروج
\fd
پیدا کردن
\hp
کمک
\ il
درج خط
\ll
خانه به پایین
\ من
پیام
\mk
علامت
\اماس
رویداد موش
\mv
حرکت
\nx
بعدی-شیء
\بر
باز کن
\op
گزینه
\pr
چاپ (کپی)
\ pv
قبلی-شیء
\rd
اماده
\re
ادامه
\RF
مرجع (مرجع)
\rh
تازه کردن
\rp
جایگزین کردن
\rs
راه اندازی مجدد
\sf
اسکرول به جلو (پیمایش به پایین)
\sl
انتخاب کنید
\sr
اسکرول به عقب (پیمایش به بالا)
\ st
Set-tab
\سو
معلق
\sv
ذخیره
\ud
خنثی کردن
\SE
Shift + End
\SH
شیفت + خانه
\SI
Shift+Insert
\SL
Shift + فلش چپ
\SR
Shift + فلش راست
\ sx
Shift + Delete
\Sbg
Shift + شروع
\Scn
Shift + Cancel
اسکو
Shift + Command
\ Scp
Shift + کپی
\Scr
Shift + Create
\ Sdl
Shift + Delete-line
\ Sel
Shift + پایان خط
\رابطه ی جنسی
Shift + Exit
\Sfd
Shift + Find
\Shp
Shift + Help
\Smg
Shift + پیام
\Smv
Shift + Move
\Snx
Shift + Next
\ سوپ
Shift + Options
\ اسپر
Shift + Print
\Spv
Shift + قبلی
\Srd
Shift + Redo
\Sre
Shift + Resume
\Srp
تغییر + جایگزین کنید
\ سو
تغییر + تعلیق
\Ssv
Shift + Save
سود
Shift + Undo
INTR، EOF، KILL و ERASE کاراکترهای خاصی هستند که توسط دستور stty پیکربندی شده اند. در یک
پیکربندی معمولی، با تایپ کردن Ctrl+C، Ctrl+D، Ctrl+U و Ctrl+H ارسال میشوند.
به ترتیب، اما برخی از تنظیمات از Ctrl+ استفاده می کنند؟ به جای Ctrl+H برای ERASE.
فرمان خط اتمام
با استفاده از دستورات کامل و کامل-بعدی کاندید و غیره می توانید دستور را کامل کنید
نام ها، گزینه ها و عملوندها به طور پیش فرض، دستور full-next-candidate محدود است
با کلید Tab در حالت vi insert و emacs.
چند حرف اول نام یا مسیر یک فرمان را تایپ کنید و کلید Tab و لیستی از را بزنید
نام های منطبق نشان داده خواهد شد. شما می توانید از لیست نامزدی برای تکمیل آن انتخاب کنید
با زدن مجدد کلید Tab نامگذاری کنید. اگر فقط یک نام منطبق وجود داشته باشد، هیچ لیستی وجود نخواهد داشت
نشان داده شده و نام مستقیما تکمیل خواهد شد.
اگر نامی که باید تکمیل شود شامل کاراکترهایی مانند * و ?، به عنوان یک الگو در نظر گرفته می شود.
نام در خط فرمان مستقیماً با همه نامهای ممکن مطابقت جایگزین میشود
الگوی (شما نمی توانید از یک لیست انتخاب کنید).
به طور معمول، نام دستورات با نام دستورات و آرگومان های فرمان با تکمیل می شود
نام های مسیر با این حال، اتمام توابع را می توان برای اصلاح نتایج تکمیل تعریف کرد.
تکمیل جزئیات
هنگامی که برای اولین بار پس از راه اندازی پوسته تکمیل می شود، INIT
فایل به گونه ای بارگذاری می شود که گویی رشته فرمان است . -AL تکمیل / INIT اجرا می شود. اگر فایل
یافت نمی شود، بی سر و صدا نادیده گرفته می شود. این بارگیری خودکار عمدتاً برای
توابع تکمیل بارگذاری همراه با پوسته، اما میتوانید اجازه دهید پوسته بارگذاری شود
توابع خود را با قرار دادن یک فایل در مسیر بارگذاری.
هنگام تکمیل نام فرمان، پوسته آن را اجرا می کند تکمیل//فرمان تابع
و هنگام تکمیل آرگومان فرمان، تکمیل//برهان تابع. اگر آن ها
توابع تکمیل تعریف نشده اند، پوسته فقط با نام دستورات تکمیل می شود
نام های مسیر هنگام تکمیل نام های دیگر، مانند نام کاربری در گسترش tilde و
نام پارامتر در بسط پارامتر، توابع تکمیل هرگز استفاده نمی شوند: the
پوسته فقط با نامهای کاربری، نام پارامترها یا هر چیز دیگری تکمیل میشود.
توابع تکمیل بدون هیچ آرگومان اجرا می شوند. متغیرهای محلی زیر
هنگام اجرای توابع تکمیل به طور خودکار تعریف می شوند:
IFS
مقدار سه کاراکتر یک فاصله، یک تب و یک خط جدید است که عبارتند از
مقدار پیش فرض متغیر
واژه
این متغیر آرایه ای است که عناصر آن نام فرمان و آرگومان هایی است که
قبل از تکمیل آرگومان وارد شده اند. هنگام تکمیل یک
نام فرمان، آرایه هیچ عنصری ندارد.
هدف
مقدار، نام فرمان یا آرگومان تا حدی است که وارد شده است
تکمیل شده
نامزدهای تکمیل با اجرای کامل داخلی در طول یک ایجاد می شوند
تابع تکمیل
توابع تکمیل نباید I/O را به ترمینال انجام دهند، در غیر این صورت متن نمایش داده می شود
فاسد شده توابع تکمیل باید با بیشترین سرعت ممکن برای کاربر بهتر اجرا شوند
تجربه.
در حالی که یک تابع تکمیل در حال اجرا است:
· حالت POSIXly-correct به طور موقت غیرفعال است،
· گزینه err-exit به طور موقت غیرفعال است و
· تله ها اجرا نمی شوند.
کاملاً صحیح MODE
Yash در بیشتر موارد همانطور که در POSIX.1-2008، Shell & Utilities تعریف شده است، رفتار می کند، اما برخی
قابلیت ها از POSIX برای قابلیت استفاده نادیده می گیرند. هنگامی که به انطباق کامل POSIX نیاز است، شما
می تواند فعال کند POSIX به طور صحیح حالت برای اینکه یاش تا حد امکان از POSIX اطاعت کند.
اگر yash با نام "sh" شروع شود، حالت POSIXly-correct به طور خودکار فعال می شود.
La -o تقریباً صحیح گزینه خط فرمان نیز حالت POSIXly-correct را فعال می کند. بعد از
yash شروع شده است، حالت POSIXly-correct را می توان با اجرای دستور فعال کرد
رشته تنظیم -o تقریباً صحیح.
وقتی حالت POSIXly-correct روشن است، yash نه تنها سعی میکند از الزامات پیروی کند
POSIX، بلکه اغلب شرایطی را که در آن رفتار وجود دارد به عنوان خطا در نظر می گیرد تعریف نشده or
نامشخص توسط POSIX. در نتیجه، اکثر عملکردهای مخصوص yash در قسمت غیرفعال می شوند
حالت POSIXly-correct.
در زیر لیست کاملی از تفاوت های رفتاری بین زمانی که یاش در آن قرار دارد آمده است
حالت POSIXly-correct و زمانی که نه. هنگامی که حالت POSIXly-correct فعال است:
· اسکریپت های مختلف اولیه استفاده می شود.
· نام مستعار جهانی جایگزین نمی شود.
· دستورات تو در تو در یک دستور مرکب نباید خالی باشند.
· کلمات گسترش یافته در یک حلقه for به جای محلی به عنوان یک متغیر سراسری اختصاص داده می شوند.
متغیر باید یک نام قابل حمل (فقط ASCII) داشته باشد. نقطه ویرگول قبل از do نمی توان
بدون ظاهر شدن in بعد از نام متغیر
· الگوی اول در دستور case نمی تواند باشد که C.
· تابع کلمه کلیدی را نمی توان برای تعریف تابع استفاده کرد. تابع باید a داشته باشد
نام قابل حمل (فقط ASCII).
· دستورات ساده را نمی توان به آرایه ها اختصاص داد.
· تغییر ارزش LC_CTYPE متغیر پس از مقداردهی اولیه پوسته انجام می دهد
بر روی محل پوسته تاثیر نمی گذارد.
· تصادفی نمی توان از متغیر برای تولید اعداد تصادفی استفاده کرد.
· گسترش Tilde فقط گسترش می یابد ~ و ~نام کاربری.
· بسط پارامتر را نمی توان تودرتو کرد. هیچ نمایه ای مجاز نیست.
· دستورات در یک دستور جایگزین فرم $(دستورات) هر بار تجزیه می شوند
جایگزینی اجرا می شود.
· در بسط حسابی، اعداد کسری و ++ و -- اپراتورها نمی توانند باشند
استفاده شده. همه متغیرها باید عددی باشند.
· در تغییر مسیر به یک فایل، اگر گسترش نام مسیر بیش از یک یا هیچ به دست آورد
نام مسیر، بلافاصله به عنوان یک خطا در نظر گرفته نمی شود. در عوض، پوسته سعی می کند درمان کند
کلمه قبل از بسط به عنوان نام مسیر.
· تغییر مسیر سوکت، در اینجا رشته ها، تغییر مسیر لوله و تغییر مسیر فرآیند نمی توانند باشند
استفاده شده.
· هنگام اجرای یک دستور ساده، شکست در جستجوی دستور باعث اجرا نمی شود
از COMMAND_NOT_FOUND_HANDLER متغیر.
· در جستجوی فرمان، یک داخلی معمولی باید یک فرمان خارجی مربوطه داشته باشد
تا داخلی پیدا شود.
· دستورات ناهمزمان سیگنال های SIGINT و SIGQUIT را نادیده می گیرند حتی زمانی که کنترل کار انجام می شود.
فعال. ورودی استاندارد دستورات ناهمزمان به /dev/null هدایت میشود
پوسته تعاملی نیست، صرف نظر از اینکه کنترل شغل فعال است یا خیر.
· برخی از توکارها رفتار متفاوتی دارند. به خصوص، برخی از گزینه های خط فرمان نمی توانند باشند
استفاده شده.
· یک پوسته غیر تعاملی زمانی خارج می شود که یک داخلی خاص از نظر نحوی اشتباه داده شود
آرگومان ها یا زمانی که خطایی در تخصیص یا تغییر مسیر با یک خاص رخ می دهد
ساخته شده در.
یک پوسته تعاملی این را اجرا نمی کند PROMPT_COMMAND متغیر قبل از چاپ a
سریع. ارزش های PS1, PS2و PS4 متغیرها به طور متفاوتی تجزیه می شوند.
· در بررسی ایمیل، در صورتی که فایل اصلاح شده باشد، یک پیام اعلان چاپ می شود.
صرف نظر از خالی بودن فایل
مکررا پرسیده شد سوالات و عیب یابی
La به طور پیش فرض سریع is هم ساده...
بدون فایل yashrc، yash تقریباً مشابه پوسته خام POSIX است. یاشرک نمونه قرار دهید
در فهرست اصلی شما (~/.yashrc) و آن را به دلخواه شخصی سازی کنید.
چگونه می توان I استفاده کنید یونیکد (غیر ASCII) شخصیت ها؟
برای فعال کردن پشتیبانی از کاراکترهای یونیکد، باید متغیرهای محیط محلی را تنظیم کنید.
اگر متغیرها قبلاً برای اولویت شما پیکربندی شده اند، احتمالاً این کار را نکرده اید
برای انجام هر کاری. برای بررسی تنظیمات محلی فعلی، می توانید از محل
فرمان:
محلی $
LANG=
LC_CTYPE="en_US.utf8"
LC_NUMERIC="en_US.utf8"
LC_TIME="en_US.utf8"
LC_COLLATE="en_US.utf8"
LC_MONETARY="en_US.utf8"
LC_MESSAGES="en_US.utf8"
LC_PAPER="en_US.utf8"
LC_NAME="en_US.utf8"
LC_ADDRESS="en_US.utf8"
LC_TELEPHONE="en_US.utf8"
LC_MEASUREMENT="en_US.utf8"
LC_IDENTIFICATION="en_US.utf8"
LC_ALL=en_US.utf8
در این مثال ، محل دستور نشان می دهد که تمام دسته های تنظیمات محلی هستند
برای زبان انگلیسی، منطقه ایالات متحده و رمزگذاری UTF-8 پیکربندی شده است.
اگر به نظر می رسد پیکربندی فعلی با اولویت شما مطابقت ندارد، آن را تنظیم کنید LC_ALL
متغیر مانند این:
صادرات LC_ALL=en_US.utf8
اگر میخواهید از زبانها، مناطق یا کدگذاریهای دیگر استفاده کنید، باید متغیر را روی آن تنظیم کنید
یک ارزش متفاوت لطفاً برای آشنایی با نحوه پیکربندی این موارد، به اسناد سیستم عامل خود مراجعه کنید
متغیرها با جزئیات
اگر می خواهید هر بار که yash را شروع می کنید همان پیکربندی را اعمال کنید، دستور را بنویسید
in ~/.yashrc or ~/.yash_profile.
اگر yash هنوز وارد کردن کاراکترهای یونیکد را رد می کند، به بخش زیر در رابطه با آن مراجعه کنید
ویرایش خط
ویرایش خط میکند نه کار
ابتدا تایپ کنید از دست $TERM و ببینید که آیا آن را چاپ می کند عاقلانه ارزش. xterm امن ترین ارزشی است که
باید روی هر محیط موجود کار کند. نسخه های رنگی مانند xterm-16color و دیگر
انواع ترمینال مانند rxvt و vt100 همچنین ممکن است کار کند. تمام مقادیر ممکن را می توان توسط فهرست فهرست کرد
پنجه فرمان بسیار مطلوب است که مقداری را انتخاب کنید که با نوع ترمینال واقعی مطابقت داشته باشد
در حال استفاده هستید، اما اگر نوع پایانه ای که انتخاب کرده اید پشتیبانی نشود، ممکن است کار نکند
سیستمی که یاش روی آن اجرا می شود. اگر چنین است، سعی کنید آن را تغییر دهید مدت ارزش توسط صادرات
TERM=xtermبرای مثال، برای یافتن مقداری که کار می کند.
اگر ویرایش خط کار می کند اما در وارد کردن کاراکترهای Unicode (غیر ASCII) مشکل دارید، سعی کنید
فعال کردن گزینه le-no-conv-meta توسط تنظیم -o le-no-conv-meta.
FORMAL تعریف OF COMMAND نحو
این فصل نحو دستورات پوسته را به عنوان گرامر عبارت تجزیه تعریف می کند.
مجموعه پایانه های گرامر مجموعه ای از کاراکترهایی است که می توان روی آن کار کرد
محیطی که پوسته در آن اجرا می شود (معروف به مجموعه کاراکترهای اجرایی)، به استثنای
که مجموعه شامل کاراکتر تهی نباشد ('\0').
در زیر لیستی از غیر پایانی های دستور زبان با عبارات تجزیه مربوطه آمده است. را
فهرست شامل قوانینی برای تجزیه مطالب و انتهای اسناد در اینجا نیست. در
حالت POSIXly-correct، گرامر از لیست زیر برای غیرفعال کردن غیر POSIX متفاوت است
ویژگی های
CompleteCommand
SequenceEOF
دنباله
N* لیست*
فهرست
خط لوله ((&& / ||) N* Pipeline)* ListSeparator
خط لوله
انفجار؟ فرمان (|N* فرمان)*
فرمان
CompoundCommandRedirection* /
RFunctionDefinition /
!R SimpleCommand
CompoundCommand
زیر پوسته / گروه بندی / IfCommand / ForCommand / whileCommand / CaseCommand /
FunctionCommand
زیر پوسته
(دنباله)S*
گروه بندی
LeftBraceSequenceRightBrace
IfCommand
IfSequenceThen Sequence (Elif Sequence then Sequence)* (Else Sequence)؟ فی
ForCommand
ForNameS* جداکننده؟ (InWord* Separator)؟ DoSequenceDone
در حالی که فرمان
(در حالی که / تا) SequenceDo Sequence Done
CaseCommand
CaseWordN* در N* CaseItem* Esac
مورد
!اساک ((S*)؟ کلمه (| S* کلمه)* )توالی (;; / &Esac)
FunctionCommand
FunctionWord ((S* ))؟ N* CompoundCommandRedirection*
تعریف تابع
نام ها* ( S* )N* CompoundCommandRedirection*
SimpleCommand
&(Word / Redirection) (Assignment / Redirection)* (Word / Redirection)*
واگذاری
نام=کلمه /
نام =(N* (کلمه N*)* )
نام
![[:digit:]] [[:alnum:] _]+
PortableName
![0-9] [0-9ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_]+
کلمه
(WordElement / !SpecialChar.)+ S*
WordElement
\ . / ' (!' .)* ' / "QuoteElement* " / پارامتر / محاسبات / CommandSubstitution
نقل قول
\ ([$`"\] / NL) / پارامتر / محاسبات / CommandSubstitution /
!["\]
پارامتر
$ [@*#؟-$! [: رقم:]] / $PortableName / $ParameterBody
ParameterBody
{پارامتر شماره؟ (ParameterName / ParameterBody / Parameter) ParameterIndex؟
ParameterMatch؟ }
پارامتر شماره
# ![+=:/%] !([-?#] })
نام پارامتر
[@*#؟-$!] /
[[:alnum:] _]+
ParameterIndex
[ParameterIndexWord (, ParameterIndexWord)؟ ]
ParameterIndexWord
(WordElement / !["']،] .)+
ParameterMatch
:؟ [-+=؟] ParameterMatchWord /
(# / ## / % / %%) ParameterMatchWord /
(:/ / / [#%/]؟) ParameterMatchWordNoSlash (/ ParameterMatchWord)؟
ParameterMatchWord
(WordElement / !["'}] .)*
ParameterMatchWordNoSlash
(WordElement / !["'/}] .)*
حساب
$((بدن حسابی* ))
بدن حسابی
\ . / پارامتر / محاسبات / CommandSubstitution / ( بدن حسابی ) /
![`()]
CommandSubstitution
$(دنباله) / `CommandSubstitutionBody* `
CommandSubstitutionBody
\ [$`\] /
!` .
راهنمایی مجدد
RedirectionFDRredirectionOperatorS* Word /
RedirectionFD <(دنباله) /
RedirectionFD >( دنباله )
RedirectionFD
[[: رقم:]]*
RedirectionOperator
< / <> / > / >| / >> / >> | / <& / >& / << / <<- / <<
ListSeparator
جداکننده / &N*/
&) /
&;;
تفکیک کننده
;N* / N+ / EOF
N
S* NL
S
[[:blank:]] / نظر دهید
اظهار نظر
# (!NL.)*
R
Bang / LeftBrace / RightBrace / Case / Do / Done / Elif / Else / Esac / Fi / برای / اگر
/ در / سپس / تا / در حالی که
بنگ
!D
بریس چپ
{D
بریس راست
}D
مورد
موردD
Do
doD
انجام شده
انجام شدهD
Elif
الیفD
دیگر
دیگرD
اساک
که CD
Fi
fiD
برای
برایD
عملکرد
تابعD
If
ifD
In
inD
سپس
سپسD
تا زمان
تاD
در حالی که
در حینD
D
!WordS*
SpecialChar
[|&;<>()`\"' [:blank:]] / NL
NL
EOF
!.
آلیاس ساخته شده است
La نام مستعار ساخته شده در نام مستعار را تعریف و/یا چاپ می کند.
نحو
· نام مستعار [-gp] [نام[=ارزش]...]
توضیحات:
نام مستعار داخلی، نام مستعار را همانطور که توسط عملوندها مشخص شده است، تعریف و/یا چاپ می کند. چاپ شده
نام مستعار را می توان به عنوان (بخشی از) دستورات پوسته استفاده کرد. تمام مواردی که در حال حاضر تعریف شده اند را چاپ می کند
نام مستعار زمانی که هیچ عملوند داده نمی شود.
گزینه
-g, -- جهانی
با این گزینه، نام مستعار به عنوان نام مستعار جهانی تعریف می شود. بدون این گزینه، به عنوان
نام مستعار عادی
-p, -- پیشوند
با این گزینه، نام مستعار در یک فرم فرمان کامل مانند چاپ می شود نام مستعار -g foo='bar'.
بدون این گزینه، فقط عملوندهای فرمان مانند چاپ می شوند foo='bar'.
کارگردانها
نام
نام مستعاری که باید چاپ شود.
نام=ارزش
نام و مقدار یک نام مستعار که در حال تعریف است.
خروج وضعیت
وضعیت خروج نام مستعار داخلی صفر است مگر اینکه خطایی وجود داشته باشد.
یادداشت
کاراکترهایی که نمی توان در نام مستعار استفاده کرد عبارتند از space، tab، newline و هر کدام
of =$<>\'"`;&|()#. می توانید از هر کاراکتری در مقدار مستعار استفاده کنید.
نام مستعار داخلی یک توکار نیمه ویژه است.
استاندارد POSIX هیچ گزینه ای را برای نام مستعار داخلی تعریف نمی کند، بنابراین هیچ گزینه ای وجود ندارد
در حالت صحیح POSIXly موجود است.
آرایه ساخته شده است
La صف ساخته شده در آرایه ها را چاپ یا اصلاح می کند.
نحو
· صف
· صف نام [ارزش...]
· صف -d نام [شاخص...]
· صف -i نام شاخص [ارزش...]
· صف -s نام شاخص ارزش
توضیحات:
هنگامی که بدون هیچ گزینه یا عملوندی اجرا می شود، تعاریف داخلی تمام تعاریف آرایه را در آن چاپ می کند
خروجی استاندارد به شکلی که بتوان آن را به عنوان دستور تجزیه کرد.
هنگام اجرا با نام و ارزشs (اما بدون گزینه)، داخلی تنظیم می کند ارزشs
همانطور که مقادیر آرایه نامگذاری شده است نام.
با -d (--حذف) گزینه، داخلی حذف می کند شاخصth مقادیر آرایه نامگذاری شده است
نام. تعداد مقادیر موجود در آرایه به تعداد مقادیر کاهش می یابد شاخصes
مشخص شده. اگر شاخصth مقدار وجود ندارد، بی سر و صدا نادیده گرفته می شود.
با -i (--درج) گزینه، درج های داخلی ارزشs در آرایه ای که نامگذاری شده است نام.
تعداد مقادیر در آرایه به تعداد عدد افزایش می یابد ارزشs مشخص شده است. در
مقادیر بین درج می شوند شاخصth و مقادیر بعدی اگر شاخص صفر است، مقادیر هستند
قبل از اولین مقدار درج شده است. اگر شاخص بزرگتر از تعداد مقادیر موجود در است
آرایه، مقادیر بعد از آخرین عنصر اضافه می شوند.
با -s (--تنظیم) گزینه، مجموعه های داخلی ارزش عنوان شاخصمقدار آرایه
تحت عنوان نام. آرایه باید حداقل داشته باشد شاخص ارزش ها.
گزینه
-d, --حذف
حذف مقادیر آرایه
-i, --درج
درج مقادیر آرایه
-s, --تنظیم
مقدار آرایه را تنظیم کنید.
کارگردانها
نام
نام آرایه ای که باید روی آن کار کرد.
شاخص
نمایه یک عنصر آرایه. عنصر اول دارای شاخص 1 است.
ارزش
رشته ای که عنصر آرایه روی آن تنظیم می شود.
خروج وضعیت
وضعیت خروج آرایه داخلی صفر است مگر اینکه خطایی وجود داشته باشد.
یادداشت
آرایه داخلی در استاندارد POSIX تعریف نشده است.
دستور صف نام ارزش... معادل تکلیف است نام=(ارزش...).
BG ساخته شده است
La bg ساخته شده در یک کار را در پس زمینه از سر می گیرد.
نحو
· bg [کار...]
توضیحات:
bg داخلی سیگنال SIGCONT را به کار مشخص شده ارسال می کند. در نتیجه، کار است
در پسزمینه از سر گرفته میشود (اگر به حالت تعلیق درآمده باشد).
هنگامی که کار از سر گرفته می شود، نام کار چاپ می شود.
داخلی تنها زمانی قابل استفاده است که کنترل کار فعال باشد.
کارگردانها
کار
شناسه شغلی شغلی که از سر گرفته می شود.
بیش از یک کار را می توان در یک زمان مشخص کرد. در صورت عدم وجود، کار فعلی از سر گرفته می شود
مشخص شده.
علامت درصد (%) در ابتدای کار شناسه شغلی را می توان حذف کرد اگر پوسته نباشد
در حالت POSIXly-correct.
خروج وضعیت
وضعیت خروج bg داخلی صفر است مگر اینکه خطایی وجود داشته باشد.
یادداشت
توکار bg یک توکار نیمه ویژه است.
استاندارد POSIX مقرر میدارد که وقتی کار قبلاً انجام شده است، توکار هیچ تأثیری نخواهد داشت
در حال اجرا با این حال، bg داخلی yash، همیشه سیگنال SIGCONT را به کار ارسال می کند.
BINDKEY ساخته شده است
La کلید اتصال ساخته شده در صحافی های کلیدی مورد استفاده در ویرایش خط را چاپ یا اصلاح می کند.
نحو
· کلید اتصال -aev [کلید [فرمان]]
· کلید اتصال -l
توضیحات:
هنگام اجرا با -l (-- لیست) گزینه، تمام ویرایش های خط موجود را فهرست می کند
دستورات به خروجی استاندارد
هنگامی که با یکی از گزینههای دیگر اجرا میشود، داخلی اتصالات کلید را چاپ یا تغییر میدهد
برای حالت ویرایش مشخص شده توسط گزینه:
· بدون کلید or فرمان، تمام صحافی های تعریف شده در حال حاضر به استاندارد چاپ می شوند
خروجی به شکلی که می تواند به عنوان دستوراتی که اتصالات جاری را بازیابی می کند تجزیه شود
اجرا شده.
· با کلید اما بدون فرمان، فقط الزام آور برای داده شده است کلید چاپ می شود.
· با کلید و فرمان, کلید مقید است فرمان.
گزینه
-a, --vi-command
اتصالات را برای حالت فرمان vi چاپ یا اصلاح کنید.
-e, --Emacs
صحافی ها را برای حالت emacs چاپ یا اصلاح کنید.
-v, --vi-insert
اتصالات را برای حالت درج vi چاپ یا اصلاح کنید.
کارگردانها
کلید
دنباله نویسه ای از یک یا چند کلید که به یک دستور ویرایش محدود شده است. در
توالی ممکن است شامل توالی های فرار باشد.
فرمان
یک دستور ویرایش خط که به آن کلید محدود است. اگر فرمان یک خط فاصله است (-), کلید
بی بند و بار است.
خروج وضعیت
وضعیت خروجی bindkey داخلی صفر است مگر اینکه خطایی وجود داشته باشد.
یادداشت
کلید اتصال داخلی در استاندارد POSIX تعریف نشده است.
BREAK ساخته شده است
La شکستن ساخته شده در یک حلقه در حال اجرا را سقط می کند.
نحو
· شکستن [لانه]
· شکستن -i
توضیحات:
وقتی بدون -i (--تکرار) گزینه، داخلی در حال حاضر سقط می شود
برای حلقه، while یا تا زمانی که اجرا می شود. هنگامی که در حلقه های تودرتو اجرا می شود، آن را سقط می کند لانهth
درونی ترین حلقه به طور پیش فرض لانه یکی هست. اگر تعداد حلقه های تودرتو اجرا شده در حال حاضر
کمتر است از لانه، داخلی ترین حلقه را قطع می کند.
هنگام اجرا با -i (--تکرار) گزینه، داخلی اجرا شده را لغو می کند
(درونی ترین) اجرای تکراری.
گزینه
-i, --تکرار
به جای حلقه یک اجرای تکراری را لغو کنید.
کارگردانها
لانه
تعداد حلقه هایی که باید سقط شوند، که باید یک عدد صحیح مثبت باشد.
خروج وضعیت
وضعیت خروج از break داخلی:
· اگر یک حلقه با موفقیت قطع شد، صفر است.
· فرمانی که درست قبل از break داخلی اجرا شد اگر تکراری باشد
اعدام با موفقیت لغو شد.
یادداشت
شکاف توکار یک توکار ویژه است.
استاندارد POSIX هیچ گزینه ای را برای break داخلی تعریف نمی کند. داخلی می پذیرد نه
گزینه ها در حالت POSIXly-correct.
CD ساخته شده است
La cd ساخته شده در دایرکتوری کاری را تغییر می دهد.
نحو
· cd [-L|-P] [فهرست راهنما]
توضیحات:
cd داخلی دایرکتوری کاری را به دایرکتوری مشخص شده توسط عملوند تغییر می دهد.
نام مسیر دایرکتوری کاری جدید به PWD متغیر، که قبلی
مقدار دوباره به OLDPWD متغیر.
If فهرست راهنما یک مسیر نسبی است که با '' شروع نمی شود.' یا «..»، مسیرهای موجود در CDPATH
متغیر برای یافتن یک فهرست کاری جدید جستجو می شود. جستجو به روشی انجام می شود
مشابه آخرین مرحله جستجوی دستور است، اما به جای یک دایرکتوری جستجو می شود
فایل معمولی قابل اجرا اگر دایرکتوری کاری جدید از CDPATH، نام مسیر آن است
به خروجی استاندارد چاپ می شود. اگر هیچ دایرکتوری قابل اجرا در جستجو پیدا نشد،
فهرست راهنما به سادگی به عنوان یک نام مسیر نسبت به فهرست کاری فعلی در نظر گرفته می شود.
اگر دایرکتوری کاری با موفقیت تغییر کرد، مقدار YASH_AFTER_CD متغیر
به عنوان یک فرمان اجرا می شود مگر اینکه پوسته در حالت POSIXly-correct باشد. اگر متغیر
یک آرایه است، مقادیر آن به صورت تکراری اجرا می شوند (به eval داخلی مراجعه کنید).
گزینه
-L, --منطقی
پیوندهای نمادین در نام مسیر دایرکتوری کاری جدید حل نشده اند. جدید
ارزش PWD ممکن است شامل اجزای نام مسیر باشد که پیوندهای نمادین هستند.
-P, -- فیزیکی
پیوندهای نمادین در نام مسیر دایرکتوری کاری جدید حل می شوند. جدید
ارزش PWD متغیر هرگز شامل اجزای نام مسیر که پیوندهای نمادین هستند نمی شود.
--default-directory=فهرست راهنما
اگر این گزینه مشخص شده باشد و فهرست راهنما عملوند حذف شده است، استدلال این است
گزینه برای استفاده می شود فهرست راهنما عملوند اگر فهرست راهنما عملوند مشخص شده است، این
گزینه نادیده گرفته می شود
La -L (--منطقی) و -P (-- فیزیکی) گزینه ها متقابلاً منحصر به فرد هستند: فقط آخرین
مشخص شده موثر است اگر هیچکدام مشخص نشده باشد، -L فرض بر این است.
کارگردانها
فهرست راهنما
نام مسیر دایرکتوری کاری جدید.
If فهرست راهنما یک خط فاصله است ('-')، مقدار OLDPWD متغیر برای فرض شده است
نام مسیر فهرست جدید، که در خروجی استاندارد چاپ می شود.
If فهرست راهنما حذف شده است، دایرکتوری کاری به دایرکتوری مشخص شده تغییر می کند
توسط --default-directory=... گزینه. اگر آن گزینه نیز مشخص نشده باشد،
پیش فرض دایرکتوری خانه است.
خروج وضعیت
اگر فهرست کار با موفقیت انجام شود، وضعیت خروج سی دی داخلی صفر است
تغییر کرده و در صورت وجود خطا غیر صفر.
یادداشت
سی دی داخلی یک توکار نیمه ویژه است.
استاندارد POSIX استفاده از آن را تعریف نمی کند YASH_AFTER_CD متغیر یا
--default-directory=... گزینه. استاندارد اجازه استفاده از یک گزینه با یک واحد را نمی دهد
عملوند خط فاصله
وضعیت خروج از دستورات در YASH_AFTER_CD متغیر بر آن تأثیر نمی گذارد
سی دی داخلی
کولون ساخته شده است
La روده بزرگ ساخته شده در هیچ کاری نمی کند
نحو
· : [استدلال...]
توضیحات:
کولون تعبیه شده هیچ کاری نمی کند. هر آرگومان خط فرمان نادیده گرفته می شود.
خروج وضعیت
وضعیت خروج کولون داخلی صفر است.
یادداشت
روده بزرگ توکار مخصوص است.
آرگومان ها گسترش می یابند و تغییر مسیرها طبق معمول انجام می شوند. روده بزرگ و درست است
توکارها همان اثر را دارند، اما کولون یک توکار ویژه است در حالی که true یک است
نیمه ویژه
COMMAND ساخته شده است
La فرمان ساخته شده در یک فرمان را اجرا یا شناسایی می کند.
نحو
· فرمان [-befp] فرمان [استدلال...]
· فرمان -v|-V [-abefkp] فرمان...
توضیحات:
بدون -v (-- شناسایی) و یا -V (-- پرمخاطب-شناسایی) گزینه، داخلی اجرا می شود
فرمان با استدلالs به همان روشی که آخرین مرحله اجرای ساده است
دستورات این فرمان به عنوان یک فرمان داخلی یا خارجی یا یک تابع در نظر گرفته می شود
به گزینه های مشخص شده در فرمان داخلی. پوسته در استدلال خارج نمی شود
خطای نحوی و غیره حتی اگر دستور یک داخلی خاص باشد
با -v (-- شناسایی) گزینه، فرمان شناسایی می شود. اگر دستور در پیدا شد $ PATH,
نام مسیر کامل آن چاپ شده است. اگر یک کلمه کلیدی، تابع یا داخلی است که یافت نمی شود
in $ PATH، نام فرمان به سادگی چاپ می شود. اگر نام مستعار باشد در قالب چاپ می شود
حرفه ای نام مستعار ll='ls -من. اگر دستور پیدا نشد، چیزی چاپ نمی شود و وضعیت خروج
غیر صفر است
La -V (-- پرمخاطب-شناسایی) گزینه مشابه است -v (-- شناسایی) گزینه، اما
فرمت خروجی بیشتر انسان پسند است.
گزینه
-a, -- نام مستعار
دستور را به عنوان نام مستعار جستجو کنید. باید با استفاده شود -v (-- شناسایی) و یا -V
(-- پرمخاطب-شناسایی) گزینه.
-b, ---command
دستور را به صورت داخلی جستجو کنید.
-e, -فرمان خارجی
دستور را به عنوان یک فرمان خارجی جستجو کنید.
-f, --عملکرد
دستور را به عنوان یک تابع جستجو کنید.
-k, --کلمه کلیدی
دستور را به عنوان کلمه کلیدی جستجو کنید. باید با استفاده شود -v (-- شناسایی) و یا -V
(-- پرمخاطب-شناسایی) گزینه.
-p, ---مسیر استاندارد
جستجوی پیش فرض سیستم PATH به جای جریان $ PATH.
-v, -- شناسایی
شناسایی فرمانs و با فرمت تعریف شده در استاندارد POSIX چاپ کنید.
-V, -- پرمخاطب-شناسایی
شناسایی فرمانs و در قالبی انسان پسند چاپ کنید.
اگر هیچ یک از -a (-- نام مستعار), -b (---command), -e (-فرمان خارجی), -f
(--عملکرد)، و -k (--کلمه کلیدی) گزینه های مشخص شده است، پیش فرض های زیر فرض می شوند:
بدون -v (-- شناسایی) و یا -V (-- پرمخاطب-شناسایی) گزینه
-b -e
با -v (-- شناسایی) و یا -V (-- پرمخاطب-شناسایی) گزینه
-a -b -e -f -k
کارگردانها
فرمان
دستوری که باید اجرا یا شناسایی شود.
استدلال...
آرگومان ها به فرمان اجرا شده منتقل می شوند.
خروج وضعیت
وضعیت خروج از دستور داخلی به صورت زیر است:
بدون -v (-- شناسایی) و یا -V (-- پرمخاطب-شناسایی) گزینه
وضعیت خروج از دستور اجرا شده
با -v (-- شناسایی) و یا -V (-- پرمخاطب-شناسایی) گزینه
صفر مگر اینکه خطایی وجود داشته باشد.
یادداشت
دستور داخلی یک توکار نیمه ویژه است.
در حالت POSIXly-correct، گزینه هایی غیر از -p, -vو -V قابل استفاده نیست و حداکثر
یک فرمان را می توان مشخص کرد. استاندارد POSIX اجازه تعیین هر دو را نمی دهد -v و -V
با هم، اما yash انجام می دهد (فقط آخرین مورد مشخص شده موثر است).
تکمیل ساخته شده است
La کامل ساخته شده در نامزدهای تکمیل را ایجاد می کند. این داخلی فقط می تواند اجرا شود
از توابع تکمیل در طول تکمیل خط فرمان.
نحو
· کامل [-آ الگو] [-R الگو] [-T] [-پ پیشوند] [-S پسوند] [-abcdfghjkuv] [[-O]
[-D شرح] کلمه...]
توضیحات:
داخلی مطابق با آرگومان های مشخص شده، نامزدهای تکمیل را ایجاد می کند. خیر
مهم نیست که نامزدها چگونه ایجاد می شوند، فقط نامزدهایی که با کلمه تکمیل شده مطابقت دارند
تولید می شوند.
گزینه
-A الگو, --پذیرفتن=الگو
فقط داوطلبانی را بپذیرید که با الگوی مشخص شده توسط این گزینه مطابقت داشته باشند. زمانی که بیش از
یکی از این گزینه ها مشخص شده است، فقط نامزدهایی هستند که با همه الگوها مطابقت دارند
تولید شده
-D شرح, --شرح=شرح
توضیحی در مورد آن بدهید کلمه نامزدهای. توضیحات در کنار نشان داده شده است
نامزدهای لیست نامزدها
-O, --گزینه
با نامزدها به عنوان گزینه های خط فرمان رفتار می شود. برای هر کدام یک خط فاصله گذاشته شده است
نامزدی که به عنوان یک گزینه در نظر گرفته می شود.
-P پیشوند, --پیشوند=پیشوند
نادیده گرفتن پیشوند کلمه ای که هنگام ایجاد نامزدها تکمیل می شود. مشخص شده
پیشوند باید جزء ابتدایی کلمه باشد
اگر کلمه در حال تکمیل است file:///home/user/docume به عنوان مثال، خط فرمان
کامل -P فایل: // -f نام مسیرهای نامزدی را ایجاد می کند که تکمیل شوند
/home/user/docume.
-R الگو, --رد =الگو
داوطلبانی که با الگوی مشخص شده توسط این گزینه مطابقت دارند را رد کنید. وقتی بیش از یک
از این گزینه مشخص شده است، فقط کاندیداهایی هستند که با هیچ یک از الگوها مطابقت ندارند
تولید شده
-S پسوند, --پسوند=پسوند
ضمیمه کردن پسوند به هر نامزد ایجاد شده
-T, -- بدون فسخ
پس از تکمیل کلمه، فاصله اضافه نکنید. بدون این گزینه، یک فاصله است
به کلمه تکمیل شده اضافه می شود تا نیازی به وارد کردن فاصله قبل از عبارت نباشد
کلمه بعدی
گزینه که را انتخاب کنید نامزد انواع
-a, -- نام مستعار
نام مستعار (مثل --normal-نام مستعار ---global- مستعار)
--آرایه-متغیر
آرایه ها
--bindkey
دستور ویرایش خط کلید اتصال داخلی می پذیرد.
-b, ---command
دستورات داخلی (مثل --ویژه ساخته شده --نیمه ویژه ساخت
--به طور منظم ساخته شده است)
-c, -- فرمان
دستورات. (مثل ---command -فرمان خارجی --عملکرد)
-d, --فهرست راهنما
راهنماها
--dirstack-index
شاخص های معتبر پشته دایرکتوری.
--فایل اجرایی
فایل های معمولی قابل اجرا
-فرمان خارجی
دستورات خارجی
-f, --فایل
فایل ها (از جمله دایرکتوری ها).
-- کار تمام شده
شناسه های شغلی کارهای تمام شده
--عملکرد
کارکرد.
---global- مستعار
نام مستعار جهانی
-g, -- گروه
گروه های کاربری
-h, -- نام میزبان
نام های میزبان
-j, --کار
شناسه های شغلی
-k, --کلمه کلیدی
کلید واژه ها.
--normal-نام مستعار
نام مستعار عادی
--به طور منظم ساخته شده است
دستورات داخلی منظم
-------------------
شناسه های شغلی مشاغلی که در حال اجرا هستند.
- متغیر اسکالر
متغیرهایی که آرایه نیستند.
--نیمه ویژه ساخت
دستورات داخلی نیمه ویژه
--علامت
سیگنالها
--ویژه ساخته شده
دستورات داخلی ویژه
--کار متوقف شده
شناسه های شغلی مشاغلی که به حالت تعلیق درآمده اند.
-u, --نام کاربری
نام های ورود کاربران
-v, --متغیر
متغیرها
اگر -d (--فهرست راهنما) گزینه بدون مشخص شده است -f (--فایل) گزینه، -S /
-T گزینه ها فرض می شود.
نامزدهای ایجاد شده برای شناسه های شغلی علائم درصد پیشرو ندارند (%). اگر کلمه
تکمیل شدن با علامت درصد شروع می شود -P % گزینه باید مشخص شود.
کارگردانها
عملگرها به عنوان کاندیدای تکمیل تلقی می شوند.
خروج وضعیت
اگر یک یا چند نامزد ایجاد شده باشد، وضعیت خروج داخلی صفر است، یک اگر باشد
هیچ نامزدی ایجاد نشد یا اگر خطایی رخ داد بزرگتر از یک نامزد بود.
یادداشت
داخلی کامل در استاندارد POSIX تعریف نشده است.
ادامه ساخته شده است
La ادامه دادن ساخته شده در از تکرار یک حلقه در حال اجرا می گذرد.
نحو
· ادامه دادن [لانه]
· ادامه دادن -i
توضیحات:
وقتی بدون -i (--تکرار) گزینه، داخلی جریان را قطع می کند
تکرار حلقه for، while یا while و تکرار بعدی حلقه را شروع می کند. چه زمانی
اجرا در حلقه های تو در تو، آن را تحت تاثیر قرار لانهدرونی ترین حلقه پیشفرض لانه یکی هست.
اگر تعداد حلقه های تو در تو اجرا شده کمتر از لانه، ساخته شده در تاثیر می گذارد
بیرونی ترین حلقه
هنگام اجرا با -i (--تکرار) گزینه، داخلی تکرار فعلی را لغو می کند
از (داخلی ترین) اجرای تکراری.
گزینه
-i, --تکرار
از اجرای تکراری به جای حلقه رد شوید.
کارگردانها
لانه
La لانهدرونی ترین حلقه تحت تأثیر قرار می گیرد. لانه باید یک عدد صحیح مثبت باشد.
خروج وضعیت
وضعیت خروج ادامه داخلی به صورت زیر است:
· صفر اگر تکرار حلقه با موفقیت رد شد.
· فرمانی که درست قبل از ادامه داخلی در صورت تکرار اجرا شد
اجرا با موفقیت نادیده گرفته شد.
یادداشت
ادامه داخلی یک توکار ویژه است.
استاندارد POSIX هیچ گزینه ای را برای ادامه داخلی تعریف نمی کند. داخلی می پذیرد نه
گزینه ها در حالت POSIXly-correct.
DIRS ساخته شده است
La دیر ساخته شده در محتویات پشته دایرکتوری را چاپ می کند.
نحو
· دیر [-رزومه] [شاخص..]
توضیحات:
La فهرست راهنما پشته قابلیتی است که تاریخچه فهرست های کاری را ثبت می کند. شما می توانید استفاده کنید
فشار داخلی برای ذخیره دایرکتوری کار در پشته دایرکتوری، popd داخلی
برای فراخوانی دایرکتوری کاری ذخیره شده و dirs داخلی برای دیدن محتویات پشته.
آن توکارها از DIRSTACK آرایه و PWD متغیر برای ذخیره محتویات پشته.
اصلاح آرایه به معنای اصلاح محتویات پشته است.
ورودی های پشته دایرکتوری با اعداد صحیح امضا شده ایندکس می شوند. ورودی شاخص +0 است
دایرکتوری فعلی فعلی، +1 آخرین فهرست ذخیره شده، +2 دومین فهرست آخرین ذخیره شده است، و غیره
بر. شاخص های منفی به ترتیب معکوس هستند: ورودی شاخص -0 اولین ذخیره شده است
دایرکتوری، -1 دومین است، و -n اگر پشته دارای دایرکتوری فعلی باشد n
ورودی های،
وقتی بدون -c (--روشن) گزینه، dirs ساخته شده در جریان را چاپ می کند
محتویات دایرکتوری به خروجی استاندارد پشته می شود. با -c (--روشن) گزینه،
داخلی پشته دایرکتوری را پاک می کند.
گزینه
-c, --روشن
محتویات پشته دایرکتوری را به جز دایرکتوری فعلی که دارای کار است پاک کنید
شاخص +0.
-v, -- پرحرف
هنگام چاپ محتویات پشته، شاخص ها را چاپ کنید.
کارگردانها
شاخص
نمایه ورودی پشته ای که باید چاپ شود.
شما می توانید بیش از یک شاخص را مشخص کنید. اگر هیچ شاخصی را مشخص نکنید، تمام ورودی ها
چاپ می شوند.
خروج وضعیت
وضعیت خروجی Dirs داخلی صفر است مگر اینکه خطایی وجود داشته باشد.
یادداشت
Dirs داخلی در استاندارد POSIX تعریف نشده است.
انکار کردن ساخته شده است
La طرد کردن ساخته شده در مشاغل را حذف می کند
نحو
· طرد کردن [-آ] [کار...}
توضیحات:
رد کردن داخلی، مشاغل مشخص شده را از لیست کار حذف می کند. مشاغل حذف شده خیر
برای مدت طولانی تری تحت کنترل کار قرار می گیرند، اما فرآیندهای شغلی به اجرا ادامه می دهند (مگر اینکه انجام شده باشند
معلق).
گزینه
-a, --همه
تمام مشاغل را حذف می کند.
کارگردانها
کار
شناسه شغلی شغلی که باید حذف شود.
شما می توانید بیش از یک شناسه شغلی را مشخص کنید. اگر هیچ شناسه شغلی را مشخص نکنید، فعلی
شغل حذف می شود اگر پوسته در حالت POSIXly-correct نباشد، پیشوند %- از
شناسه شغلی را می توان حذف کرد.
خروج وضعیت
وضعیت خروج انکار داخلی صفر است مگر اینکه خطایی وجود داشته باشد.
یادداشت
انکار داخلی در استاندارد POSIX تعریف نشده است.
DOT ساخته شده است
La نقطه ساخته شده در یک فایل را می خواند و دستورات را در آن اجرا می کند.
نحو
· . [-AL] پرونده [استدلال...]
توضیحات:
نقطه تعبیه شده موارد مشخص شده را می خواند پرونده، محتویات آن را به عنوان دستور تجزیه می کند و اجرا می کند
آنها را در محیط اجرای دستور فعلی.
If استدلالs مشخص شده اند، پارامترهای موقعیتی به طور موقت روی آنها تنظیم می شوند. را
پارامترهای موقعیت زمانی بازیابی می شوند که نقطه داخلی تمام شود. اگر نه استدلالهستند
مشخص شده است، پارامترهای موقعیتی تغییر نمی کنند.
If پرونده هیچ علامت اسلش ندارد، پوسته جستجو می کند $ PATH برای خواندن (اما نه
الزاما قابل اجرا) فایل اسکریپت پوسته که نام آن است پرونده به همان شیوه فرمان
جستجو کردن. اگر چنین فایلی پیدا نشد، پوسته دایرکتوری کاری فعلی را برای a جستجو می کند
فایل مگر اینکه در حالت POSIXly-correct باشد. برای اطمینان از اینکه فایل در حال کار است
دایرکتوری استفاده می شود، شروع کنید پرونده با './'.
گزینه
-A, --بدون نام مستعار
هنگام تجزیه، جایگزینی نام مستعار را غیرفعال کنید.
-L, -- بارگیری خودکار
جستجو $YASH_LOADPATH بجای $ PATH، صرف نظر از اینکه پرونده حاوی اسلش است
La پرونده مقدار نسبت به فهرست کاری فعلی در نظر گرفته نمی شود.
نقطه داخلی هر آرگومان خط فرمان را بعد از اولین عملوند به عنوان عملوند در نظر می گیرد.
کارگردانها
پرونده
نام مسیر فایلی که باید خوانده شود.
استدلال...
رشته هایی که پارامترهای موقعیتی در هنگام اجرا بر روی آنها تنظیم می شوند.
خروج وضعیت
وضعیت خروج از نقطه ساخته شده در آخرین فرمان اجرا شده است. وضعیت خروج
اگر فایل حاوی دستوری برای اجرا نباشد صفر و اگر فایلی پیدا نشد صفر است
یا باز نشد
یادداشت
نقطه توکار یک توکار ویژه است.
پوسته غیر تعاملی بلافاصله با وضعیت خروج غیرصفر خارج می شود اگر نقطه داخلی باشد
نمی تواند فایلی را برای اجرا پیدا کند یا باز کند.
استاندارد POSIX هیچ گزینه ای را برای نقطه داخلی تعریف نمی کند. داخلی می پذیرد نه
گزینه ها در حالت POSIXly-correct.
استاندارد POSIX این را تعریف نمی کند استدلال... عملوندها. تعیین خطا است
la استدلال... عملوندها در حالت POSIXly-correct.
ECHO ساخته شده است
La از دست ساخته شده در استدلال های خود را چاپ می کند.
نحو
· از دست [رشته...]
داخلی همه آرگومان های خط فرمان را به جز گزینه ها به عنوان عملوند در نظر می گیرد
در زیر شرح داده شده است. هر کلمه ای که نمی تواند به عنوان یک گزینه قابل قبول تجزیه شود به عنوان یک تلقی می شود
عملوند گزینه ها باید قبل از همه عملوندها باشند. خطاهای نحوی هرگز در اکو اتفاق نمی افتد
ساخته شده در.
توضیحات:
پژواک داخلی عملوند را چاپ می کند رشتهs به دنبال آن یک خط جدید به خروجی استاندارد.
La رشتهs هر کدام با یک فاصله از هم جدا می شوند.
در رفتن توالی
La ECHO_STYLE متغیر و -e گزینه توالی های فرار را فعال می کند که جایگزین شده اند
با کاراکترهای مربوطه:
\a
کاراکتر زنگ (کد اسکی: 7)
\b
Backspace (کد اسکی: 8)
\c
هیچ چی. بعد از این سکانس فرار، اصلاً هیچ کاراکتری چاپ نمی شود.
\e
کاراکتر فرار (کد اسکی: 27)
\f
کاراکتر فید فرم (کد اسکی: 12)
\n
کاراکتر خط جدید (کد اسکی: 10)
\r
نویسه برگشت کالسکه (کد اسکی: 13)
\t
کاراکتر برگه افقی (کد اسکی: 9)
\v
کاراکتر برگه عمودی (کد ASCII: 11)
\\
بک گراند
\0xxx
شخصیتی که کد آن است xxx، که در آن xxx یک عدد هشت عددی حداکثر سه رقمی است.
وقتی دنبالههای فرار فعال نیستند، فقط دست نخورده چاپ میشوند.
ECHO_STYLE متغیر
La ECHO_STYLE متغیر تعیین می کند که کدام گزینه پذیرفته می شود و آیا escape
توالی ها به طور پیش فرض فعال هستند. مقدار متغیر باید روی یکی از
زیر است:
SYSV, XSI
هیچ گزینه ای پذیرفته نمی شود. دنباله های فرار همیشه فعال هستند.
BSD
La -n گزینه پذیرفته شده است دنباله های فرار هرگز فعال نمی شوند.
گنو
La -n, -eو -E گزینه ها پذیرفته می شوند دنباله های فرار توسط فعال نمی شوند
به طور پیش فرض، اما می تواند توسط -e گزینه.
ZSH
La -n, -eو -E گزینه ها پذیرفته می شوند دنباله های فرار به طور پیش فرض فعال هستند،
اما می تواند توسط -E گزینه.
خط تیره
La -n گزینه پذیرفته شده است دنباله های فرار همیشه فعال هستند.
RAW
هیچ گزینه ای پذیرفته نمی شود. دنباله های فرار هرگز فعال نمی شوند.
هنگامی که ECHO_STYLE متغیر تنظیم نشده است، پیشفرض آن است SYSV.
گزینه
-n
در آخر خط جدید چاپ نکنید.
-e
توالی های فرار را فعال کنید.
-E
توالی های فرار را غیرفعال کنید.
خروج وضعیت
وضعیت خروج اکو داخلی صفر است مگر اینکه خطایی وجود داشته باشد.
یادداشت
استاندارد POSIX این را تعریف نمی کند ECHO_STYLE متغیر و نه هیچ گزینه ای برای
ساخته شده است. طبق POSIX، رفتار داخلی در زمانی که پیاده سازی می شود، تعریف می شود
اولین استدلال این است -n یا زمانی که هر آرگومان حاوی بک اسلش باشد. برای حداکثر
قابل حمل بودن، printf داخلی باید بر echo داخلی ترجیح داده شود.
EVAL ساخته شده است
La ارزیابی ساخته شده در عملوندها را به عنوان دستور ارزیابی می کند.
نحو
· ارزیابی [-من] [فرمان...]
eval داخلی مستلزم آن است که همه گزینه ها قبل از عملوندها قرار گیرند. هر آرگومان خط فرمان
بعد از اولین عملوند همه به عنوان عملوند در نظر گرفته می شوند.
توضیحات:
eval عملوندها را به عنوان دستورات تجزیه می کند و آنها را در اجرای دستور فعلی اجرا می کند
محیط زیست است.
وقتی بدون -i (--تکرار) گزینه، تمام عملوندها به هم متصل می شوند
یک رشته (با یک فاصله درج شده بین هر عملوند) و یکباره تجزیه/اجرا می شود.
با -i (--تکرار) گزینه، ساخته شده در انجام می دهد تکراری اعدام: عملوندها هستند
یک به یک تجزیه/اجرا شد. اگر ادامه داخلی با اجرا شود -i (--تکرار)
گزینه در طول اجرای تکراری، اجرای عملوند فعلی لغو می شود و
عملوند بعدی بلافاصله تجزیه/اجرا می شود. شکستگی ساخته شده در با -i
(--تکرار) گزینه مشابه است اما عملوندهای باقی مانده تجزیه/اجرا نمی شوند. در
ارزش ? پارامتر ویژه قبل از شروع اجرای تکراری ذخیره می شود. در
مقدار پارامتر پس از هر بار تکرار به مقدار ذخیره شده بازیابی می شود.
گزینه
-i, --تکرار
اجرای تکراری را انجام دهید.
کارگردانها
فرمان
رشته ای که تجزیه و به عنوان دستور اجرا می شود.
خروج وضعیت
اگر خیر وضعیت خروج صفر است فرمان مشخص شد یا فرمان حاوی هیچ فرمان واقعی نیست
که قابل اجراست در غیر این صورت، یعنی اگر eval داخلی یک یا چند مورد را اجرا کند
دستورات، وضعیت خروج از eval داخلی آخرین فرمان اجرا شده است.
یادداشت
توکار eval یک توکار ویژه است.
استاندارد POSIX هیچ گزینه ای را برای eval داخلی تعریف نمی کند. داخلی می پذیرد نه
گزینه ها در حالت POSIXly-correct.
اجرا کنید ساخته شده است
La exec ساخته شده در فرآیند پوسته را با دستور خارجی دیگری جایگزین می کند.
نحو
· exec [-cf] [-آ نام] [فرمان [استدلال...]]
exec داخلی نیاز دارد که همه گزینه ها قبل از عملوندها قرار گیرند. مهم است به طوری که
گزینه های موجود در exec داخلی با گزینه های به اشتباه گرفته نمی شوند فرمان. هر خط فرمان
استدلال های پس از فرمان به عنوان رفتار می شود استدلالs.
توضیحات:
هنگامی که exec داخلی با اجرا می شود فرمان، پوسته اجرا می کند فرمان با استدلالs
به روشی مشابه آخرین مرحله اجرای یک دستور ساده. تفاوت ها هستند
که فرمان همیشه به عنوان یک فرمان خارجی در نظر گرفته می شود که هر گونه عملکرد موجود را نادیده می گیرد و
توکارها و فراخوانی سیستم exec که دستور خارجی را شروع میکند در آن فراخوانی میشود
محیط اجرای دستور فعلی به جای یک زیر پوسته، جایگزین فرآیند پوسته
با فرآیند فرمان جدید
اگر پوسته در حالت POSIXly-correct باشد یا تعاملی نباشد، در اجرای
فرمان باعث می شود پوسته بلافاصله خارج شود.
اگر یک پوسته تعاملی که در حالت POSIXly-correct نیست، کار متوقف شده داشته باشد،
shell یک پیام هشدار چاپ می کند و از اجرا امتناع می کند فرمان. هنگامی که فرآیند پوسته است
با یک فرمان خارجی جایگزین، اطلاعات مربوط به کارهای پوسته از بین می رود، بنابراین شما این کار را خواهید کرد
باید کارهای متوقف شده را با ارسال سیگنال های دستی از سر بگیرید یا از بین ببرید. برای مجبور کردن پوسته به
اجرا کردن فرمان بدون در نظر گرفتن، مشخص کنید -f (--زور) گزینه.
هنگام اجرا بدون فرمان، توکار هیچ کاری نمی کند. اما به عنوان یک عارضه جانبی
تغییر جهت اعمال شده به داخلی در محیط اجرای دستور فعلی باقی می ماند
حتی پس از اتمام ساخته شده در.
گزینه
-a نام, -- به عنوان =نام
عبور نام، بجای فرمان، به دستور خارجی به عنوان نام آن.
-c, --روشن
فقط متغیرهایی را که در دستور ساده در اختصاص داده شده اند به دستور خارجی منتقل کنید
که توکار در حال اجراست. سایر متغیرهای محیطی به آنها منتقل نمی شوند
فرمان.
-f, --زور
اخطارهایی را که از اجرای فرمان جلوگیری می کنند سرکوب کنید.
کارگردانها
فرمان
یک دستور خارجی که باید اجرا شود.
استدلال...
استدلال هایی که باید به فرمان منتقل شوند.
خروج وضعیت
اگر فرآیند پوسته با موفقیت با دستور خارجی جایگزین شود، خروجی وجود ندارد
وضعیت از آنجایی که فرآیند پوسته دیگر وجود ندارد.
وضعیت خروج:
· 127 اگر دستور پیدا نشد،
· 126 اگر دستور پیدا شد اما اجرا نشد و
· صفر اگر خیر فرمان مشخص شد.
یادداشت
Exec داخلی یک داخلی خاص است.
استاندارد POSIX هیچ گزینه ای را برای exec داخلی تعریف نمی کند. داخلی می پذیرد نه
گزینه ها در حالت POSIXly-correct.
خروج ساخته شده است
La خروج ساخته شده در باعث خروج فرآیند پوسته می شود.
نحو
· خروج [-f] [وضعیت_خروجی]
توضیحات:
خروجی داخلی باعث می شود که فرآیند پوسته (یا زیر پوسته) فعلی خارج شود.
اگر یک پوسته تعاملی یک کار متوقف شده داشته باشد، پوسته یک پیام هشدار چاپ می کند و رد می کند
خارج شدن. برای اجبار پوسته به خروج بدون توجه به، مشخص کنید -f (--زور) گزینه یا اجرا کنید
ساخته شده در دو بار در یک ردیف.
اگر یک تله EXIT تنظیم شده باشد، پوسته تله را قبل از خروج اجرا می کند.
گزینه
-f, --زور
اخطارهایی را که مانع از خروج پوسته می شوند را سرکوب کنید.
کارگردانها
وضعیت_خروجی
یک عدد صحیح غیر منفی که وضعیت خروجی پوسته خروجی خواهد بود.
اگر این عملوند حذف شود، وضعیت خروجی پوسته آخرین وضعیت خواهد بود
دستور قبل از خروجی داخلی اجرا شده است (اما اگر داخلی در طول یک
trap، وضعیت خروج آخرین فرمان قبل از وارد شدن تله خواهد بود).
If وضعیت_خروجی 256 یا بزرگتر است، وضعیت خروج واقعی باقیمانده خواهد بود
وضعیت_خروجی تقسیم بر 256.
خروج وضعیت
از آنجا که داخلی باعث خروج پوسته می شود، وضعیت خروجی داخلی وجود ندارد.
به عنوان یک استثنا، اگر پوسته از خروج امتناع کرد، وضعیت خروج داخلی است
غیر صفر
یادداشت
خروجی داخلی یک توکار ویژه است.
استاندارد POSIX هیچ گزینه ای را برای خروجی داخلی تعریف نمی کند. داخلی می پذیرد نه
گزینه ها در حالت POSIXly-correct.
استاندارد POSIX فراهم می کند که وضعیت_خروجی عملوند باید بین 0 تا 255 باشد
(شامل). یاش اعداد صحیح بزرگتر از 255 را به عنوان پسوند می پذیرد.
اگر داخلی در حین یک تله EXIT اجرا شود، پوسته فقط بدون اجرا خارج می شود
دوباره تله اگر وضعیت_خروجی مشخص نشده است، وضعیت خروج پوسته همان است
وضعیت خروج اگر تله تنظیم نشده بود. به پایان پوسته نیز مراجعه کنید.
صادرات ساخته شده است
La صادرات ساخته شده در متغیرها را برای صادرات به فرآیندهای فرزند علامت گذاری می کند.
نحو
· صادرات [-prX] [نام[=ارزش]...]
توضیحات:
صادرات داخلی معادل تایپت داخلی است -gx گزینه.
یادداشت
توکار صادراتی یک توکار ویژه است.
استاندارد POSIX تعریف می کند -p فقط گزینه؛ گزینه های دیگر را نمی توان در استفاده کرد
حالت POSIXly-correct. POSIX اجازه استفاده از گزینه را همراه با عملوندها نمی دهد.
نادرست ساخته شده است
La غلط ساخته شده در هیچ کاری را ناموفق انجام نمی دهد
نحو
· غلط
توضیحات:
توکار کاذب هیچ کاری نمی کند. هر آرگومان خط فرمان نادیده گرفته می شود.
خروج وضعیت
وضعیت خروجی داخلی نادرست غیر صفر است.
یادداشت
توکار کاذب توکار نیمه ویژه است.
FC ساخته شده است
La fc ساخته شده در دستورات را از تاریخچه فرمان دوباره اجرا یا چاپ می کند.
نحو
· fc [-qr] [-e سردبیر] [شروع [پایان]]
· fc -s[q] [قدیمی=جدید] [شروع]
· fc -l[nrv] [شروع [پایان]]
توضیحات:
وقتی بدون -l (-- لیست) گزینه، توکار دستورات موجود در را اجرا می کند
محدوده تاریخچه فرمان که توسط عملوندها مشخص شده است. اگر -s (--بی صدا) گزینه نیست
مشخص شده، پوسته یک ویرایشگر را فراخوانی می کند که به شما امکان می دهد دستورات را قبل از آنها ویرایش کنید
اعدام می شوند. زمانی که ویرایشگر را ترک می کنید، دستورات اجرا می شوند. اگر -s (--بی صدا)
گزینه مشخص شده است، دستورات بلافاصله اجرا می شوند. در هر دو صورت، اعدام شدگان
دستورات در خروجی استاندارد چاپ شده و به تاریخچه اضافه می شوند.
هنگام اجرا با -l (-- لیست) گزینه، داخلی دستورات موجود در دستور را چاپ می کند
محدوده تاریخ مشخص شده توسط عملوندها. به طور پیش فرض، دستورات با آنها چاپ می شوند
شماره های ورودی تاریخ، اما فرمت خروجی را می توان با استفاده از -n (--بدون شماره)) و
-v (-- پرحرف) گزینه ها.
گزینه
-e سردبیر, --ویراستار=سردبیر
یک ویرایشگر را مشخص کنید که برای ویرایش دستورات استفاده می شود.
اگر این گزینه مشخص نشده باشد، مقدار the FCEDIT متغیر استفاده می شود. اگر
متغیر نیز تنظیم نشده است، vi استفاده می شود.
-l, -- لیست
نوشته های تاریخچه فرمان را چاپ کنید.
-n, --بدون اعداد
هنگام چاپ مدخل های تاریخچه شماره ورودی را چاپ نکنید.
-q, --ساکت
قبل از اجرا دستورات را چاپ نکنید.
-r, --معکوس
ترتیب ورودی های دستورات را در محدوده معکوس کنید.
-s, --بی صدا
دستورات را بدون ویرایش اجرا کنید.
-v, -- پرحرف
زمان چاپ قبل از هر ورودی تاریخچه هنگام چاپ.
کارگردانها
شروع و پایان
La شروع و پایان عملوندها محدوده ای از ورودی های تاریخچه فرمان را مشخص می کنند
اجرا یا چاپ شده است. اگر یکی از عملوندها یک عدد صحیح باشد، به عنوان یک تاریخ در نظر گرفته می شود
شماره ورودی یک عدد صحیح منفی به معنای nآخرین ورودی که در آن n هست
قدر مطلق عدد صحیح اگر یکی از عملوندها عدد صحیح نباشد، با آن برخورد می شود
به عنوان بخشی از یک رشته دستور: جدیدترین ورودی که با رشته شروع می شود است
به عنوان شروع یا پایان محدوده انتخاب شده است.
اگر اولین ورودی محدوده ای که توسط شروع جدیدتر از قبلی است
ورودی محدوده ای که توسط پایان، محدوده معکوس می شود که گویی -r
(--معکوس) گزینه مشخص شد. (اگر گزینه از قبل مشخص شده باشد، همینطور است
لغو شد.)
مقادیر پیش فرض برای شروع و پایان هستند:
┌──────┬─────────┬──-
│ با -l │ بدون -l │
├──────┼─────────┼─────
│شروع │ -16 │ -1 │
├──────┼─────────┼─────
│پایان │ -16 │ همان شروع │
└──────┴─────────┴──-
قدیمی=جدید
عملوندی با این فرمت جایگزین بخشی از رشته فرمان می شود. اگر رشته فرمان
شامل قدیمی، جایگزین می شود جدید و رشته جدید اجرا می شود. فقط اولی
وقوع قدیمی جایگزین می شود
خروج وضعیت
اگر دستورات اجرا شده باشد، وضعیت خروجی fc داخلی آخرین حالت اجرا شده است.
فرمان در غیر این صورت وضعیت خروج صفر است مگر اینکه خطایی وجود داشته باشد.
یادداشت
داخلی fc یک توکار نیمه ویژه است.
استاندارد POSIX این را تعریف نمی کند -q (--ساکت) و یا -v (-- پرحرف) گزینه ها، بنابراین آنها
نمی توان در حالت POSIXly-correct استفاده کرد.
تاریخچه فرمان را نمی توان در طول ویرایش خط تغییر داد.
FG ساخته شده است
La fg ساخته شده در یک کار را در پیش زمینه از سر می گیرد.
نحو
· fg [کار...]
توضیحات:
fg داخلی کار مشخص شده را در پیش زمینه می آورد و سیگنال SIGCONT را به
کار. در نتیجه، کار در پیش زمینه از سر گرفته می شود (اگر به حالت تعلیق درآمده باشد). در
داخلی سپس منتظر می ماند تا کار تمام شود و وضعیت خروج از آن را برمی گرداند.
هنگامی که کار از سر گرفته می شود، نام کار چاپ می شود.
داخلی تنها زمانی قابل استفاده است که کنترل کار فعال باشد.
کارگردانها
کار
شناسه شغلی شغلی که از سر گرفته می شود.
اگر بیش از یک کار مشخص شده باشد، به ترتیب، یک به یک از سر گرفته می شوند. را
اگر هیچ یک مشخص نشده باشد، کار فعلی از سر گرفته می شود.
علامت درصد (%) در ابتدای کار شناسه شغلی را می توان حذف کرد اگر پوسته نباشد
در حالت POSIXly-correct.
خروج وضعیت
وضعیت خروج از fg داخلی، وضعیت (آخرین) کار از سر گرفته شده است. وضعیت خروج است
زمانی که خطایی وجود داشت غیر صفر است.
یادداشت
داخلی fg یک توکار نیمه ویژه است.
شما نمی توانید بیش از یک کار را در حالت POSIXly-correct تعیین کنید.
GETOPTS ساخته شده است
La گرفتن ساخته شده در گزینه های فرمان را تجزیه می کند.
نحو
· گرفتن گزینه لیست متغیر [استدلال...]
توضیحات:
getopts داخلی گزینههای تک نویسهای را که در ظاهر میشوند تجزیه میکند استدلالس هر زمان
داخلی فراخوانی می شود، یک گزینه را تجزیه می کند و کاراکتر گزینه را به آن اختصاص می دهد
متغیر.
La گزینه لیست عملوند لیستی از کاراکترهای گزینه است که باید توسط آن پذیرفته شود
تجزیه کننده که در گزینه لیست، گزینه ای که آرگومان می گیرد باید به عنوان گزینه مشخص شود
کاراکتر به دنبال دو نقطه. به عنوان مثال، اگر شما می خواهید -a, -b و -c گزینه هایی برای بودن
تجزیه و -b پس گزینه ای برای گرفتن آرگومان گزینه لیست باید ab:c.
وقتی گزینه ای که آرگومان می گیرد تجزیه می شود، آرگومان به آن اختصاص می یابد OPTARG
متغیر.
وقتی گزینه ای که در آن مشخص نشده است گزینه لیست یافت می شود یا زمانی که یک آرگومان گزینه است
از دست رفته، نتیجه به کاراکتر اول بستگی دارد گزینه لیست:
· اگر گزینه لیست با دو نقطه شروع می شود، کاراکتر گزینه به آن اختصاص داده می شود OPTARG
متغیر و متغیر یا تنظیم شده است ? (زمانی که گزینه موجود نیست گزینه لیست) و یا :
(زمانی که آرگومان گزینه گم شده باشد).
· در غیر این صورت، متغیر تنظیم شده است ?از OPTARG متغیر تنظیم نشده است و یک پیام خطا وجود دارد
چاپ شده.
داخلی یک گزینه را برای هر اجرا تجزیه می کند. برای همه گزینه ها در یک مجموعه دستور
آرگومان های خطی برای تجزیه و تحلیل، داخلی باید بارها و بارها با همان آرگومان اجرا شود
استدلال ها ساخته شده در استفاده از OPTIND متغیر برای به خاطر سپردن کدام استدلال باید
بعد تجزیه شد هنگامی که داخلی برای اولین بار فراخوانی می شود، مقدار متغیر باید باشد
1، که مقدار پیش فرض است. شما نباید متغیر را تا زمانی که همه گزینه ها تغییر دهند تغییر دهید
تجزیه شد، زمانی که داخلی متغیر را به شاخص اولین عملوند در تنظیم می کند
استدلالس (اگر هیچ عملوندی وجود نداشته باشد، به تعداد تنظیم می شود استدلالs به علاوه یک.)
زمانی که می خواهید تجزیه مجموعه جدیدی از استدلالs، باید آن را ریست کنید OPTIND
متغیر به 1 پیش از آن
کارگردانها
گزینه لیست
فهرستی از گزینه هایی که باید به عنوان گزینه های معتبر در تجزیه پذیرفته شوند.
متغیر
نام متغیری که نتیجه باید به آن اختصاص داده شود.
استدلالs
آرگومان های خط فرمانی که قرار است تجزیه شوند.
وقتی نه استدلالs داده می شود، پارامترهای موقعیتی تجزیه می شوند.
خروج وضعیت
اگر گزینه ای پیدا شد، چه در آن مشخص شده باشد یا نه گزینه لیست، وضعیت خروج است
صفر اگر گزینه دیگری برای تجزیه وجود نداشته باشد، وضعیت خروج غیر صفر است.
مثال
aopt=false bopt= copt=نادرست
در حالی که getopts ab:c را انتخاب کنید
do
مورد $opt in
الف) aopt=true ;;
ب) bopt=$OPTARG ;;
ج) copt=true ;;
\?) بازگشت 2 ;;
که C
انجام شده
اگر $aopt; سپس echo Option -a مشخص شده است. فی
اگر [ -n "$bopt" ]; سپس echo Option -b $bopt مشخص شد. فی
اگر $copt; سپس echo Option -c مشخص شد. فی
shift $((OPTIND - 1))
عملوندهای echo عبارتند از: $*
یادداشت
In استدلالs که تجزیه می شوند، گزینه ها باید قبل از عملوندها قرار گیرند. ساخته شده در تجزیه به پایان می رسد
وقتی با اولین عملوند روبرو می شود.
getopts داخلی یک توکار نیمه ویژه است.
استاندارد POSIX مشخص نمی کند که چه اتفاقی می افتد OPTIND متغیر اختصاص داده شده است
ارزشی غیر از 1.
هاش ساخته شده است
La مخلوط ساخته شده در مکان های فرمان را به خاطر می آورد، فراموش می کند یا گزارش می دهد.
نحو
· مخلوط فرمان...
· مخلوط -r [فرمان...]
· مخلوط [-آ]
· مخلوط -d کاربر...
· مخلوط -دکتر [کاربر...]
· مخلوط -d
توضیحات:
هنگام اجرا با فرمانs اما بدون گزینه، داخلی بلافاصله دستور را اجرا می کند
جستجوی مسیر و حافظه های پنهان فرمانمسیرهای کامل
هنگام اجرا با -r (--برداشتن) گزینه، مسیرهای را حذف می کند فرمانs (یا همه
مسیرهای ذخیره شده در حافظه پنهان در صورتی که مشخص نشده باشد) از حافظه پنهان.
هنگامی که بدون گزینه یا فرمانs، مسیرهای ذخیره شده فعلی را در حافظه پنهان چاپ می کند
خروجی استاندارد
با -d (--فهرست راهنما) گزینه، توکار همین کارها را با فهرست اصلی انجام می دهد
کش، به جای کش مسیر فرمان. مسیرهای دایرکتوری خانه ذخیره شده در tilde استفاده می شوند
به گسترش است.
گزینه
-a, --همه
چاپ تمام مسیرهای کش
بدون این گزینه، مسیرهای داخلی چاپ نمی شوند.
-d, --فهرست راهنما
به جای کش مسیر فرمان، کش دایرکتوری خانگی را تحت تأثیر قرار دهید.
-r, --برداشتن
مسیرهای کش را حذف کنید.
کارگردانها
فرمان
نام یک فرمان خارجی (که حاوی هیچ اسلش نیست).
کاربر
یک نام کاربری
خروج وضعیت
وضعیت خروج هش داخلی صفر است مگر اینکه خطایی وجود داشته باشد.
یادداشت
پوسته به طور خودکار مسیرهای فرمان و دایرکتوری را هنگام اجرای یک دستور ذخیره می کند
انجام توسعه tilde، بنابراین معمولاً نیازی به استفاده از این داخلی نیست
برای کش کردن مسیرها
اختصاص یک مقدار به PATH متغیر تمام مسیرهای فرمان را از کش حذف می کند مخلوط
-r اعدام شد.
استاندارد POSIX تعریف می کند -r گزینه فقط: گزینه های دیگر را نمی توان در استفاده کرد
حالت POSIXly-correct.
کمک ساخته شده است
La کمک ساخته شده در استفاده از داخلی را چاپ می کند.
نحو
· کمک [ساخته شده در...]
توضیحات:
راهنمای داخلی شرحی را چاپ می کند ساخته شده درs.
داخلی بخشی از خروجی را استخراج می کند مرد یاش و آن را در خروجی استاندارد چاپ می کند.
بنابراین برای کارکرد توکار باید صفحه راهنمای یاش نصب شده باشد.
بسته به سبک قالببندی فرمان man، ممکن است داخلی به این شکل کار نکند
انتظار می رود.
کارگردانها
ساخته شده درs
نام های داخلی
خروج وضعیت
وضعیت خروج از کمک داخلی صفر است مگر اینکه خطایی وجود داشته باشد.
یادداشت
راهنمای داخلی در استاندارد POSIX تعریف نشده است.
بسیاری از توکارهای یاش را می پذیرند --کمک گزینه ای که همان توضیحات را چاپ می کند.
تاریخچه ساخته شده است
La تاریخ ساخته شده در تاریخچه فرمان را چاپ یا ویرایش می کند.
نحو
· تاریخ [-cF] [-d ورود] [-s فرمان] [-r پرونده] [-w پرونده] [تعداد دفعات مشاهده]
توضیحات:
تاریخچه داخلی تاریخچه فرمان را چاپ یا ویرایش می کند.
هنگامی که با یک گزینه اجرا می شود، داخلی تاریخچه را مطابق با گزینه ویرایش می کند. اگر بیشتر
بیش از یک گزینه مشخص شده است، هر گزینه به ترتیب پردازش می شود.
هنگام اجرا با تعداد دفعات مشاهده عملوند، جدیدترین نسخه داخلی را چاپ می کند تعداد دفعات مشاهده تاریخ
ورودی های خروجی استاندارد به همان روشی که fc داخلی است.
هنگامی که با هیچ گزینه یا عملوند اجرا نمی شود، داخلی کل تاریخچه را چاپ می کند.
گزینه
-c, --روشن
تمام ورودی های تاریخچه را به طور کامل پاک کنید.
-d ورود, --حذف=ورود
مشخص شده را حذف کنید ورود. ورود باید به همان ترتیبی که
شروع و پایان عملوندهای fc داخلی.
-F, -- flush-file
فایل تاریخچه را دوباره بسازید. این عملیات داده های قدیمی استفاده نشده را از فایل حذف می کند.
-r پرونده, --خواندن=پرونده
خواندن خطوط فرمان از پرونده و آنها را به تاریخ اضافه کنید. محتویات فایل هستند
به عنوان خطوطی از متن ساده در نظر گرفته می شود.
-s فرمان, --set=فرمان
اضافه کردن فرمان به عنوان یک ورودی تاریخچه جدید پس از حذف آخرین ورودی.
-w پرونده, --نوشتن=پرونده
کل تاریخ را بنویسید پرونده. هر گونه داده موجود در فایل از بین خواهد رفت. را
فرمت خروجی خطوطی از متن ساده است که هر کدام یک رشته دستور هستند.
کارگردانها
تعداد دفعات مشاهده
تعداد مدخل هایی که باید چاپ شوند.
خروج وضعیت
وضعیت خروج از تاریخچه داخلی صفر است مگر اینکه خطایی وجود داشته باشد.
یادداشت
تاریخچه داخلی در استاندارد POSIX تعریف نشده است.
تاریخچه فرمان را نمی توان در طول ویرایش خط تغییر داد.
JOBS ساخته شده است
La شغل ها ساخته شده در وضعیت شغلی را گزارش می دهد
نحو
· شغل ها [-lnprs] [کار...]
توضیحات:
کارهای داخلی اطلاعات کارهایی را که پوسته در حال حاضر کنترل می کند چاپ می کند.
به طور پیش فرض، اطلاعات زیر برای هر کار، خط به خط چاپ می شود:
· شماره شغل،
· + or - اگر کار به ترتیب شغل فعلی یا قبلی باشد، نماد،
· وضعیت، و
· رشته فرمان.
گزینه
-l, -- پرحرف
شناسه فرآیند، وضعیت و رشته فرمان را برای هر فرآیند در کارها چاپ کنید.
-n, --جدید
فقط کارهای جدید چاپ کنید: کارهایی که وضعیت آنها از زمان وضعیت هرگز گزارش نشده است
تغییر کرد.
-p, --pgid-only
فقط شناسه های گروه فرآیند کارها را چاپ کنید.
-r, - فقط در حال اجرا
فقط کارهای در حال اجرا را چاپ کنید.
-s, -- فقط متوقف شد
فقط کارهای متوقف شده را چاپ کنید.
کارگردانها
کارs
شناسه شغلی مشاغلی که باید گزارش شود. وقتی نه کار مشخص شده است، تمامی مشاغل تحت
کنترل پوسته گزارش شده است.
خروج وضعیت
وضعیت خروج از کارهای داخلی صفر است مگر اینکه خطایی وجود داشته باشد.
یادداشت
Jobs توکار توکار نیمه ویژه است.
استاندارد POSIX تعریف می کند -l و -p گزینه ها فقط: گزینه های دیگر را نمی توان در استفاده کرد
حالت POSIXly-correct. در حالت POSIXly-correct، اثر -l گزینه است
در آن وضعیت برای هر کار به جای هر فرآیند گزارش شده است.
شناسه گروه فرآیند کاری که توسط yash اجرا شده است برابر با شناسه فرآیند اول است
فرمان خط لوله ای که کار را تشکیل می دهد.
بکش ساخته شده است
La کشتن ساخته شده در سیگنالی را به فرآیندها ارسال می کند.
نحو
· کشتن [-سیگنال|-s سیگنال|-n سیگنال] روند...
· کشتن -l [-v] [سیگنال...]
kill داخلی مستلزم آن است که همه گزینه ها قبل از عملوندها قرار گیرند. هر آرگومان خط فرمان
بعد از اولین عملوند همه به عنوان عملوند در نظر گرفته می شوند.
توضیحات:
وقتی بدون -l گزینه، داخلی سیگنالی را به فرآیندها ارسال می کند. سیگنال
ارسال را می توان با گزینه مشخص کرد. اگر سیگنالی مشخص نشده باشد سیگنال SIGTERM ارسال می شود.
هنگام اجرا با -l گزینه، ساخته شده در چاپ اطلاعات از سیگنالs به
خروجی استاندارد اگر نه سیگنال مشخص شده است، اطلاعات تمام سیگنال ها چاپ می شود.
گزینه
تعیین سیگنال گزینه های
-سیگنال, -s سیگنال, -n سیگنال
یک گزینه تعیین سیگنال سیگنالی را برای ارسال به فرآیندها مشخص می کند. سیگنال می توان
با نام یا شماره مشخص شود. اگر شماره 0 مشخص شده است، داخلی بررسی می کند که آیا a
سیگنال می تواند به فرآیندها ارسال شود اما هیچ سیگنالی در واقع ارسال نمی شود. نام های سیگنال
به حروف بزرگ و کوچک حساس هستند
شما می توانید حداکثر یک گزینه مشخص کننده سیگنال را در هر زمان مشخص کنید.
دیگر گزینه های
-l
به جای ارسال سیگنال، اطلاعات سیگنال را چاپ کنید.
-v
اطلاعات سیگنال بیشتر را چاپ کنید.
بدون این گزینه، داخلی فقط نام سیگنال را چاپ می کند. این گزینه اضافه می کند
شماره سیگنال و توضیحات کوتاه
هنگامی که -v گزینه مشخص شده است، -l گزینه را می توان حذف کرد
کارگردانها
روندes
فرآیندهایی را که سیگنال به آنها ارسال می شود را مشخص کنید.
فرآیندها را می توان با شناسه فرآیند، شناسه گروه فرآیند یا شناسه شغلی مشخص کرد. در
شناسه گروه فرآیند باید با خط فاصله (-) به طوری که با آن به عنوان یک رفتار نمی شود
شناسه فرآیند
چه زمانی 0 به عنوان مشخص شده است روند، سیگنال به گروه فرآیندی ارسال می شود که به آن
فرآیند پوسته متعلق است. چه زمانی -1 مشخص شده است، سیگنال به تمام فرآیندهای روشن ارسال می شود
سیستم.
سیگنال
سیگنالی را مشخص کنید که اطلاعات آن چاپ می شود.
سیگنال را می توان با نام، شماره یا وضعیت خروج یک فرمان مشخص کرد
که توسط سیگنال کشته شد.
خروج وضعیت
وضعیت خروج از kill داخلی صفر است مگر اینکه خطایی وجود داشته باشد. اگر سیگنال بود
حداقل به یک فرآیند ارسال می شود، حتی اگر سیگنال به آن ارسال نشده باشد، وضعیت خروج صفر است
تمام فرآیندهای مشخص شده
یادداشت
کیل توکار یک توکار نیمه ویژه است.
آرگومان های دستوری که با خط فاصله شروع می شوند باید با احتیاط استفاده شوند. فرمان کشتن -1
-2برای مثال، سیگنال 1 را به گروه پردازش 2 می فرستد -1 به عنوان یک رفتار می شود
گزینه تعیین سیگنال و -2 به عنوان یک عملوند که یک گروه فرآیند را مشخص می کند. دستورات
کشتن -- -1 -2 و کشتن -مدت، اصطلاح -1 -2از سوی دیگر، هر دو را درمان می کند -1 و -2 به عنوان عملوند
استاندارد POSIX این را تعریف نمی کند -n or -v گزینه ها، بنابراین آنها را نمی توان در استفاده کرد
حالت POSIXly-correct. استاندارد اجازه نمی دهد که یک شماره سیگنال به عنوان علامت مشخص شود
استدلال از -s گزینه یا نام سیگنال به عنوان سیگنال عملوند
استاندارد مستلزم این است که نام سیگنال بدون علامت مشخص شود SIG پیشوند، مانند INT و
ترک کنید. اگر پوسته در حالت POSIXly-correct نباشد، داخلی میپذیرد SIG-پیشوند
نام های سیگنال نیز
POPD ساخته شده است
La پاپ ساخته شده در دایرکتوری را از پشته دایرکتوری باز می کند.
نحو
· پاپ [شاخص]
توضیحات:
پاپ داخلی آخرین ورودی را از پشته دایرکتوری حذف می کند و به فهرست باز می گردد
دایرکتوری کاری قبلی اگر شاخص داده می شود، ورودی مشخص شده توسط شاخص حذف شده است
به جای آخرین
کارگردانها
شاخص
فهرست ورودی پشته دایرکتوری که می خواهید حذف کنید.
در صورت حذف، +0 (آخرین مدخل) فرض شده است.
خروج وضعیت
وضعیت خروج از پاپ داخلی صفر است مگر اینکه خطایی وجود داشته باشد.
یادداشت
هنگامی که فقط یک ورودی پشته دایرکتوری وجود دارد، استفاده از این داخلی یک خطا است.
پاپ داخلی در استاندارد POSIX تعریف نشده است.
PRINTF ساخته شده است
La printf ساخته شده در مقادیر فرمت شده را چاپ می کند.
نحو
· printf قالب [ارزش...]
توضیحات:
فرمت های داخلی printf ارزشمطابق با قالب و آنها را مطابق استاندارد چاپ می کند
خروجی برخلاف echo داخلی، printf داخلی یک خط جدید چاپ نمیکند
به صورت خودکار.
فرآیند قالب بندی بسیار شبیه به تابع printf در برنامه نویسی C است
زبان می توانید از مشخصات تبدیل استفاده کنید (که با %) و دنباله های فرار
(که با \) که در قالب. هر شخصیت دیگری که بخشی از یک تبدیل نیست
مشخصات یا توالی فرار به معنای واقعی کلمه چاپ می شوند.
تبدیل مشخصات
مشخصات تبدیل با علامت درصد (%).
مشخصات تبدیل به جز %% الف مصرف می کند ارزش، که بر اساس فرمت
مشخصات و چاپ شده هر مشخصات تبدیل یک مورد مصرف می کند ارزش در
ترتیب ظاهر اگر بیشتر باشد ارزشs از مشخصات تبدیل،
تمام قالب دوباره پردازش می شود تا زمانی که تمام شود ارزشs مصرف می شود. اگر یک ارزش به
مصرف شده وجود ندارد، فرض می شود که یک رشته خالی است (اگر مشخصات
به یک رشته نیاز دارد) یا صفر (اگر عدد باشد). اگر نه ارزشs داده می شود، قالب پردازش می شود
فقط یک بار.
مشخصات تبدیل موجود عبارتند از:
%d, %i
یک عدد صحیح امضا شده را به صورت اعشاری چاپ می کند
%u
یک عدد صحیح بدون علامت را به صورت اعشاری چاپ می کند
%o
یک عدد صحیح بدون علامت را به صورت هشتی چاپ می کند
%x
یک عدد صحیح بدون علامت را با حروف کوچک هگزادسیمال چاپ می کند
%X
یک عدد صحیح بدون علامت را با حروف بزرگ هگزادسیمال چاپ می کند
%f
یک عدد ممیز شناور را با حروف کوچک چاپ می کند
%F
یک عدد ممیز شناور را با حروف بزرگ چاپ می کند
%e
یک عدد ممیز شناور را با توان با حروف کوچک چاپ می کند
%E
یک عدد ممیز شناور را با توان بزرگ چاپ می کند
%g
همان %f or %e، به طور خودکار انتخاب شده است
%G
همان %F or %E، به طور خودکار انتخاب شده است
%c
اولین کاراکتر رشته را چاپ می کند
%s
یک رشته چاپ می کند
%b
یک رشته را چاپ می کند (تشخیص دنباله های فرار مانند پژواک داخلی)
%%
علامت درصد را چاپ می کند (%)
برای %g و %G، مشخصاتی که در واقع استفاده می شود این است %f or %F اگر توان
قسمت بین -5 و دقت (انحصاری) است. %e or %E در غیر این صورت.
در مشخصات تبدیل به جز %%، علامت درصد پیشرو ممکن است به دنبال آن باشد
پرچم ها، عرض میدان و/یا دقت به این ترتیب.
پرچم ها دنباله ای از هر تعداد از کاراکترهای زیر هستند:
علامت منفی (-)
با این پرچم، فضاهایی به مقدار قالببندی شده اضافه میشود تا تا فیلد پر شود
عرض در غیر این صورت، فضاها از قبل آماده می شوند.
علامت جمع (+)
یک علامت مثبت یا منفی همیشه به یک عدد اضافه می شود.
فضا ( )
یک فاصله به عدد فرمت شده اضافه می شود اگر علامت مثبت یا منفی نداشته باشد.
علامت هش (#)
مقدار به شکل جایگزین فرمت شده است: For %o، عدد صحیح هشتگانه چاپ شده
حداقل یک صفر اول دارد. برای %x و %X، یک عدد صحیح غیر صفر با فرمت شده است
0x و 0X پیشوندها به ترتیب برای %e, %E, %f, %F, %gو %G، یک علامت اعشاری
(با نام مستعار نویسه ریشه) همیشه چاپ می شود حتی اگر مقدار یک عدد صحیح دقیق باشد.
برای %g و %G، عدد چاپ شده دارای حداقل یک رقم در قسمت کسری است.
صفر (0)
صفرها به یک عدد قالب بندی شده اضافه می شوند تا تا عرض فیلد پر شوند. این پرچم
اگر پرچم منهای مشخص شده باشد یا اگر مشخصات تبدیل مشخص شده باشد نادیده گرفته می شود
%d, %i, %u, %o, %x، یا %X با یک دقت
عرض فیلد به عنوان یک عدد صحیح اعشاری مشخص می شود که صفرهای ابتدایی ندارد.
عرض فیلد حداقل تعداد بایت های یک مقدار فرمت شده را تعیین می کند. اگر فرمت شده است
مقدار به حداقل تعداد بایت نمی رسد، بنابراین فضاهای زیادی اضافه شده است که
مقدار چاپ شده دارای تعداد بایت مشخص شده است.
یک دقت به عنوان یک دوره مشخص می شود (.) به دنبال آن یک عدد صحیح اعشاری. اگر عدد صحیح
پس از دوره حذف می شود، دقت صفر در نظر گرفته می شود.
برای مشخصات تبدیل %d, %i, %u, %o, %xو %X، یک دقت a را تعریف می کند
حداقل تعداد رقم اگر عدد صحیح فرمت شده به حداقل تعداد رقم نرسد،
آنقدر صفر اضافه شده است که عدد صحیح چاپ شده دارای تعداد مشخص شده باشد
ارقام دقت پیشفرض برای این مشخصات تبدیل است.
برای مشخصات تبدیل %e, %E, %fو %F، یک دقت تعداد را مشخص می کند
ارقام بعد از علامت اعشار دقت پیشفرض برای این تبدیلها شش است
مشخصات.
برای مشخصات تبدیل %gو %G، یک دقت حداکثر تعداد را تعریف می کند
ارقام قابل توجه در ارزش چاپ شده دقت پیش فرض برای اینها شش است
مشخصات تبدیل
برای مشخصات تبدیل %sو %b، یک دقت حداکثر تعداد بایت را تعریف می کند
رشته چاپ شده دقت پیش فرض برای این تبدیل ها بی نهایت است
مشخصات.
در مشخصات تبدیل %08.3f، پرچم صفر مشخص شده است، عرض فیلد است
8، و دقت 3 است. اگر این مشخصات برای مقدار 12.34 اعمال شود، خروجی
خواهد بود 0012.340.
در رفتن توالی
توالی های فرار زیر در شناسایی می شوند قالب:
\a
کاراکتر زنگ (کد اسکی: 7)
\b
Backspace (کد اسکی: 8)
\f
کاراکتر فید فرم (کد اسکی: 12)
\n
کاراکتر خط جدید (کد اسکی: 10)
\r
نویسه برگشت کالسکه (کد اسکی: 13)
\t
کاراکتر برگه افقی (کد اسکی: 9)
\v
کاراکتر برگه عمودی (کد ASCII: 11)
\\
بک گراند
\"
نقل قول دوگانه
\'
نقل قول واحد (آپوستروف)
\xxx
شخصیتی که کد آن است xxx، که در آن xxx یک عدد هشت عددی حداکثر سه رقمی است.
کارگردانها
قالب
رشته ای که چگونگی را مشخص می کند ارزشs باید فرمت شود.
ارزشs
مقادیری که بر اساس قالب بندی می شوند قالب.
یک مقدار یا یک عدد یا یک رشته است.
هنگامی که یک مقدار عددی مورد نیاز است، ارزش می تواند یک یا دو نقل قول دنبال شود
توسط یک کاراکتر، به جای یک عدد معمولی. مثلا دستور printf "٪ d" "3"
چاپ خواهد کرد 51 در یک محیط معمولی که در آن شخصیت 3 دارای کد کاراکتر 51
خروج وضعیت
وضعیت خروج printf داخلی صفر است مگر اینکه خطایی وجود داشته باشد.
یادداشت
استاندارد POSIX دقیقاً نحوه مدیریت کاراکترهای چند بایتی را مشخص نمی کند
ساخته شده در. وقتی از %s مشخصات تبدیل با دقت یا %c
مشخصات تبدیل، اگر مقدار فرمت شده باشد، ممکن است نتایج غیرمنتظره ای به دست آورید
شامل یک کاراکتر است که با بیش از یک بایت نمایش داده می شود. یاش هرگز فقط چاپ نمی کند
بخشی از بایت ها که نشان دهنده یک کاراکتر چند بایتی هستند زیرا همه آنها چند بایت هستند
کاراکترها هنگام پردازش در پوسته به کاراکترهای گسترده تبدیل می شوند.
PUSHD ساخته شده است
La pushd ساخته شده در یک دایرکتوری را به پشته دایرکتوری فشار می دهد.
نحو
· pushd [-L|-P] [فهرست راهنما]
توضیحات:
فشار داخلی پوشه دایرکتوری کار را به تغییر می دهد فهرست راهنما به همان شیوه سی دی
ساخته شده و آن را به پشته دایرکتوری اضافه می کند. اگر دایرکتوری کاری قابل تغییر نیست
با موفقیت، پشته اصلاح نشده است.
گزینه
فشار داخلی گزینه زیر و همچنین گزینه های قابل استفاده را می پذیرد
برای سی دی داخلی:
--حذف-تکراری
اگر دایرکتوری کاری جدید قبلاً در پشته دایرکتوری بوده است، موجود است
قبل از اینکه دایرکتوری جدید به پشته فشار داده شود، ورودی از پشته حذف می شود.
کارگردانها
فهرست راهنما
نام مسیر دایرکتوری کاری جدید.
If فهرست راهنما یک خط فاصله است ('-')، مقدار OLDPWD متغیر برای فرض شده است
نام مسیر فهرست جدید، که در خروجی استاندارد چاپ می شود.
If فهرست راهنما یک عدد صحیح با علامت مثبت یا منفی است، به عنوان یک ورودی در نظر گرفته می شود
شاخص پشته دایرکتوری ورودی از پشته حذف می شود و سپس به آن فشار داده می شود
دوباره پشته
If فهرست راهنما حذف شده است، دایرکتوری کاری به دایرکتوری مشخص شده تغییر می کند
توسط --default-directory=... گزینه. اگر آن گزینه نیز مشخص نشده باشد،
پیش فرض ایندکس است +1.
خروج وضعیت
وضعیت خروجی داخلی فشار داده شده صفر است مگر اینکه خطایی وجود داشته باشد.
یادداشت
داخلی فشار داده شده در استاندارد POSIX تعریف نشده است.
PWD ساخته شده است
La pwd ساخته شده در فهرست کاری فعلی را چاپ می کند.
نحو
· pwd [-L|-P]
توضیحات:
pwd داخلی یک مسیر مطلق به دایرکتوری کاری فعلی پوسته را در قسمت چاپ می کند
خروجی استاندارد
گزینه
-L, --منطقی
اگر مقدار PWD متغیر یک مسیر مطلق به دایرکتوری کاری پوسته است
و مسیر شامل هیچ کدام نیست . or .. اجزاء، سپس مسیر چاپ می شود.
در غیر این صورت، مسیر چاپ شده مانند زمانی است که -P گزینه مشخص شده است.
-P, -- فیزیکی
مسیر چاپ شده حاوی هیچ کدام نیست . or .. مؤلفه ها، مؤلفه های پیوند نمادین،
یا اسلش های اضافی
La -L (--منطقی) و -P (-- فیزیکی) گزینه ها متقابلاً منحصر به فرد هستند: فقط آخرین
مشخص شده موثر است اگر هیچکدام مشخص نشده باشد، -L فرض بر این است.
خروج وضعیت
وضعیت خروج از pwd داخلی صفر است مگر اینکه خطایی وجود داشته باشد.
یادداشت
توکار pwd یک توکار نیمه ویژه است.
خواندن ساخته شده است
La خواندن ساخته شده در خطی را از ورودی استاندارد می خواند.
نحو
· خواندن [-Aer] [-P|-p] متغیر...
توضیحات:
خواندن داخلی یک خط رشته را از ورودی استاندارد می خواند و آن را به آن اختصاص می دهد
متغیرهای مشخص شده
اگر -r (- حالت خام) گزینه مشخص شده است، تمام کاراکترهای خط درمان می شوند
به معنای واقعی کلمه.
اگر -r (- حالت خام) گزینه مشخص نشده است، اسلش های معکوس در خط به عنوان تلقی می شوند
نقل قول ها اگر بک اسلش در انتهای خط باشد، به عنوان یک خط در نظر گرفته می شود
ادامه هنگامی که داخلی خط بعدی را می خواند، PS2 متغیر به عنوان یک اعلان استفاده می شود
اگر پوسته تعاملی باشد و ورودی استاندارد یک ترمینال باشد.
خط ورودی در معرض تقسیم میدان است. کلمات به دست آمده به
متغیربه ترتیب است. اگر کلمات بیشتر از متغیرs، آخرین متغیر اختصاص داده می شود
تمام کلمات باقی مانده (انگار کلمات تقسیم نشده اند). اگر کلمات کمتر از
متغیرs، به متغیرهای باقیمانده رشته های خالی اختصاص داده می شود.
گزینه
-A, --آرایه
آخرین را بسازید متغیر یک آرایه. به جای اختصاص الحاقی به بقیه
کلمات به یک متغیر عادی، کلمات به یک آرایه اختصاص داده می شوند.
-e, - ویرایش خط
برای خواندن خط از ویرایش خط استفاده کنید.
برای استفاده از ویرایش خط، تمام شرایط زیر نیز باید رعایت شود:
· پوسته تعاملی است.
· گزینه vi یا emacs فعال است.
· ورودی استاندارد و خطای استاندارد به یک ترمینال متصل می شوند.
-P, --ps1
چاپ کردن PS1 متغیر به عنوان یک اعلان قبل از خواندن خط (اول) اگر پوسته باشد
تعاملی و ورودی استاندارد یک ترمینال است.
-p سریع, --prompt=سریع
مشخص شده را چاپ کنید سریع قبل از خواندن خط (اول) اگر پوسته تعاملی باشد
و ورودی استاندارد ترمینال است.
-r, - حالت خام
اسلش ها را به عنوان نقل قول تلقی نکنید.
کارگردانها
متغیرs
نام متغیرهایی که کلمات ورودی به آنها اختصاص داده شده است.
خروج وضعیت
وضعیت خروج از داخل خوانده شده صفر است مگر اینکه خطایی وجود داشته باشد.
توجه داشته باشید که اگر قبل از خواندن با انتهای ورودی مواجه شود، وضعیت خروج غیر صفر است
کل خط
یادداشت
توکار read in یک توکار نیمه ویژه است.
استاندارد POSIX تعریف می کند -r گزینه فقط: گزینه های دیگر را نمی توان در استفاده کرد
حالت POSIXly-correct.
La PS1R و PS1S متغیرها بر رفتار ویرایش خط تأثیر میگذارند PS1 prompt استفاده می شود.
برای همین PS2.
فقط خواندنی ساخته شده است
La فقط خواندنی ساخته شده در متغیرها و توابع را فقط خواندنی می کند.
نحو
· فقط خواندنی [-pxX] [نام[=ارزش]...]
· فقط خواندنی -f[p] [نام...]
توضیحات:
توکار فقط خواندنی معادل نوع تایپ داخلی است -gr گزینه.
یادداشت
Readonly داخلی یک توکار ویژه است.
استاندارد POSIX تعریف می کند -p فقط گزینه؛ گزینه های دیگر را نمی توان در استفاده کرد
حالت POSIXly-correct. POSIX اجازه استفاده از گزینه را همراه با عملوندها نمی دهد.
برگشت ساخته شده است
La برگشت ساخته شده در از یک تابع یا اسکریپت برمی گردد.
نحو
· برگشت [-n] [وضعیت_خروجی]
توضیحات:
وقتی بدون -n (--بدون بازگشت) گزینه، یکی از موارد زیر رخ می دهد:
· اگر پوسته در حال اجرای یک تابع باشد، اجرای تابع خاتمه می یابد.
· اگر نقطه ساخته شده در حال اجرای یک اسکریپت باشد، اجرای اسکریپت خاتمه می یابد.
· اگر پوسته در حین مقداردهی اولیه اسکریپت را اجرا می کند، اجرای اسکریپت
خاتمه یافته است
· اگر پوسته در حال اجرای یک تله باشد، اجرای تله برای
سیگنال کنترل شده در حال حاضر
· در غیر این صورت، پوسته خارج می شود مگر اینکه تعاملی باشد.
هنگام اجرا با -n (--بدون بازگشت) گزینه، توکار هیچ کاری جز برگرداندن آن انجام نمی دهد
مشخص شده وضعیت_خروجی.
گزینه
-n, --بدون بازگشت
یک تابع، اسکریپت، تله یا پوسته را خاتمه ندهید.
کارگردانها
وضعیت_خروجی
وضعیت خروج از داخلی.
مقدار باید یک عدد صحیح غیر منفی باشد.
در صورت حذف، از وضعیت خروج آخرین فرمان اجرا شده استفاده می شود. (اما وقتی پوسته
در حال اجرای یک تله، وضعیت خروج آخرین فرمان قبل از استفاده از تله است.)
خروج وضعیت
وضعیت خروج از بازگشت داخلی توسط تعریف شده است وضعیت_خروجی عملوند خروج
وضعیت همچنین به عنوان وضعیت خروج از تابع، اسکریپت یا پوسته پایان یافته استفاده می شود.
یادداشت
توکار بازگشتی یک توکار ویژه است.
استاندارد POSIX فراهم می کند که وضعیت_خروجی عملوند باید بین 0 تا 255 باشد
(شامل). یاش اعداد صحیح بزرگتر از 255 را به عنوان پسوند می پذیرد.
در استاندارد POSIX، رفتار بازگشت داخلی تنها زمانی تعریف می شود که پوسته باشد
در حال اجرای یک تابع یا اسکریپت است.
استاندارد POSIX هیچ گزینه ای را برای بازگشت داخلی تعریف نمی کند. داخلی می پذیرد نه
گزینه ها در حالت POSIXly-correct.
مجموعه ساخته شده است
La تنظیم ساخته شده در گزینه های پوسته و پارامترهای موقعیتی را تنظیم می کند.
نحو
· تنظیم [انتخابs] [عملوندs]
· تنظیم -o
· تنظیم +o
مجموعه داخلی مستلزم آن است که همه گزینه ها قبل از عملوندها قرار گیرند. هر گونه آرگومان خط فرمان
بعد از اولین عملوند همه به عنوان عملوند در نظر گرفته می شوند.
توضیحات:
هنگامی که بدون هیچ آرگومان دستوری اجرا می شود، داخلی لیستی از تمام موجودات را چاپ می کند
متغیرهای ورودی استاندارد به شکلی که می توان از آنها به عنوان دستورات بازیابی مجدد استفاده کرد
تعاریف متغیر
چه زمانی -o تنها آرگومان فرمان است، داخلی لیستی از گزینه های پوسته را با آن چاپ می کند
تنظیمات فعلی آنها چه زمانی +o تنها آرگومان فرمان است، دستورات داخلی چاپ می شود
که می تواند مجدداً برای بازیابی تنظیمات گزینه پوسته فعلی استفاده شود.
در موارد دیگر، داخلی تنظیمات گزینه پوسته و/یا پارامترهای موقعیتی را تغییر میدهد.
گزینه
هنگامی که یک یا چند گزینه مشخص می شود، داخلی پوسته را فعال یا غیرفعال می کند
گزینه ها. یک گزینه معمولی با پیشوند خط فاصله یک گزینه پوسته را فعال می کند. گزینه ای که هست
پیشوند با علامت مثبت (+) به جای خط تیره یک گزینه پوسته را غیرفعال می کند. به عنوان مثال، گزینه ها
-m, -o مانیتورو -- مانیتور گزینه و گزینه های مانیتور را فعال کنید +m, +o مانیتور,
++مانیتور آن را غیرفعال کنید
نام گزینه طولانی به حروف بزرگ و کوچک حساس نیست و ممکن است شامل غیرالفبایی نامربوط باشد
شخصیت هایی که نادیده گرفته می شوند. به عنوان مثال، گزینه ها --le-comp-debug و --LeCompDebug هستند
معادل. اگر نه به نام یک گزینه طولانی اضافه می شود، معنی معکوس می شود. برای
مثال، --noallexport برابر است با ++الکسپورت و ++ عدم اطلاع رسانی به --اعلام کردن.
یک گزینه را می توان به یکی از اشکال زیر مشخص کرد:
یک گزینه طولانی به عنوان مثال --allexport
· یک -o گزینه ای با نام گزینه ای که به عنوان آرگومان مشخص شده است -o الکسپورت
یک گزینه تک شخصیتی به عنوان مثال -a
همه گزینه ها را نمی توان به عنوان گزینه های تک شخصیتی مشخص کرد.
گزینه های موجود عبارتند از:
تمام صادراتی (-a)
هنگامی که فعال است، همه متغیرها به طور خودکار هنگام اختصاص داده می شوند.
پرانتز-بسط
این گزینه انبساط بادبند را فعال می کند.
Case-glob
(به طور پیشفرض فعال است) در صورت فعال بودن، تطبیق الگو در نام مسیر به حروف بزرگ و کوچک حساس است
به گسترش است.
کلوبگر (+C)
(به طور پیش فرض فعال است) وقتی فعال باشد، >تغییر مسیر مانند رفتار است >|
تغییر جهت
cur-async، cur-bg، cur-stop
(به طور پیشفرض فعال است) این گزینهها بر انتخاب شغل فعلی تأثیر میگذارند (به ID job مراجعه کنید).
نقطه-کره
وقتی فعال باشد، نقطههای ابتدای نام فایلها بهطور ویژه در نظر گرفته نمیشوند
گسترش نام مسیر
ایمکس
این گزینه ویرایش خط را در حالت emacs فعال می کند.
اشتباه خروج (-e)
هنگامی که فعال باشد، اگر خط لوله با وضعیت خروج غیر صفر به پایان برسد، پوسته بلافاصله
خارج می شود مگر اینکه:
· خط لوله شرط یک فرمان if یا حلقه while یا while است.
· پیشوند خط لوله توسط !و یا
· خط لوله یک فرمان ترکیبی منفرد غیر از گروه بندی زیر پوسته است.
اجرایی (+n)
(به طور پیش فرض فعال است) دستورات در واقع تنها زمانی اجرا می شوند که این گزینه فعال باشد.
در غیر این صورت، دستورات فقط تجزیه می شوند و اجرا نمی شوند. غیرفعال کردن این گزینه ممکن است باشد
برای بررسی نحو مفید است. در یک پوسته تعاملی، این گزینه همیشه فرض می شود
فعال شده است
گسترده-کره
این گزینه پسوند را در گسترش نام مسیر فعال می کند.
کره (+f)
(به طور پیش فرض فعال است) این گزینه گسترش نام مسیر را فعال می کند.
هش روی دف (-h)
هنگامی که یک تابع تعریف می شود زمانی که این گزینه فعال است، پوسته بلافاصله اجرا می شود
مسیر فرمان را برای هر دستوری که در تابع ظاهر میشود و آن را در حافظه پنهان میکند، جستجو کنید
مسیر کامل فرمان
فضای تاریخی
وقتی فعال باشد، خطوط فرمانی که با یک فضای خالی شروع می شوند در دستور ذخیره نمی شوند
تاریخ.
نادیده گرفتن-eof
هنگامی که فعال است، یک پوسته تعاملی هنگام ورود EOF (پایان فایل) خارج نمی شود. این
هنگامی که به طور تصادفی Ctrl-D را فشار دهید از خروج پوسته جلوگیری می کند.
le-always-rp، le-comp-debug، le-conv-meta، le-no-conv-meta، le-prompt-sp، le-visible-bell
گزینه های پوسته را در ویرایش خط مشاهده کنید.
mark-dirs
وقتی فعال باشد، نام دایرکتوری های به دست آمده با یک اسلش در گسترش نام مسیر اضافه می شود.
مانیتور (-m)
این گزینه کنترل کار را فعال می کند. این گزینه به طور پیش فرض برای یک تعامل فعال است
پوسته.
مطلع ساختن (-b)
هنگامی که وضعیت یک کار تغییر می کند با فعال شدن این گزینه، پوسته بلافاصله
در هر زمان اطلاع می دهد. این گزینه گزینه notify-le را لغو می کند.
اطلاع رسانی-le
این گزینه مشابه گزینه notify است اما تغییر وضعیت فقط اطلاع رسانی می شود
در حالی که پوسته منتظر ورودی با ویرایش خط است.
null-glob
هنگامی که فعال است، در گسترش نام مسیر، الگوهایی که با هیچ نام مسیر مطابقت ندارند، هستند
از خط فرمان به جای باقی ماندن همانطور که هست حذف می شود.
تقریباً صحیح
این گزینه حالت POSIXly-correct را فعال می کند.
ردیابی همه
(به طور پیش فرض فعال است) هنگامی که این گزینه غیرفعال است، گزینه x-trace به طور موقت است
زمانی که پوسته در حال اجرای دستورات تعریف شده در
COMMAND_NOT_FOUND_HANDLER, PROMPT_COMMAND، یا YASH_AFTER_CD متغیر.
تنظیم نشده (+u)
(به طور پیش فرض فعال است) وقتی فعال باشد، پارامترهای تعریف نشده به رشته های خالی گسترش می یابند.
در بسط پارامتر هنگامی که غیرفعال است، گسترش پارامتر تعریف نشده منجر به یک می شود
خطا.
پرحرف (-v)
وقتی فعال باشد، پوسته هر خط فرمان را قبل از تجزیه به خطای استاندارد چاپ میکند
و اجرای آن
vi
این گزینه ویرایش خط را در حالت vi فعال می کند. این گزینه به طور پیش فرض در فعال است
یک پوسته تعاملی اگر ورودی استاندارد و خطا هر دو پایانه باشند.
x-trace (-x)
هنگامی که فعال باشد، نتایج بسط به خطای استاندارد برای هر یک چاپ می شود
دستور ساده در حال اجرا هنگام چاپ، هر خط با یک بسط اضافه می شود
نتیجه از PS4 متغیر. همچنین به گزینه trace-all مراجعه کنید.
کارگردانها
اگر یک یا چند عملوند به مجموعه داخلی داده شود، پارامترهای موقعیت فعلی هستند
همه حذف شده و عملوندها به عنوان پارامترهای موقعیتی جدید تنظیم می شوند. اگر -- جدا ساز
(ر.ک. نحو آرگومان های فرمان) ارسال می شود، پارامترهای موقعیتی حتی زمانی که تنظیم می شوند
هیچ عملوندی وجود ندارد، در این صورت پارامترهای موقعیتی جدید هیچ خواهند بود.
خروج وضعیت
وضعیت خروج از مجموعه داخلی صفر است مگر اینکه خطایی وجود داشته باشد.
یادداشت
مجموعه توکار یک توکار ویژه است.
در استاندارد POSIX، گزینه های پوسته موجود بسیار محدود است. استاندارد اینطور نیست
تعریف کردن:
· گزینه های طولانی مانند --allexport,
· در حال آماده کردن نه برای نفی یک گزینه،
· استفاده از حروف بزرگ و/یا نویسه های غیر الفبایی در نام گزینه ها
گزینه های تعریف شده در استاندارد عبارتند از:
· -a, -o الکسپورت
· -e, -o errexit
· -m, -o مانیتور
· -C, -o نوکلوببر
· -n, -o noexec
· -f, -o نوگلوب
· -b, -o مطلع ساختن
· -u, -o اسم مجموعه
· -v, -o واژگان
· -x, -o xtrace
· -h
· -o نادیده گرفتن
· -o نولوگ
· -o vi
Yash از گزینه nolog پشتیبانی نمیکند، که از وجود تعاریف تابع جلوگیری میکند
به تاریخچه فرمان اضافه شد.
از SHIFT ساخته شده است
La تغییر ساخته شده در برخی از پارامترهای موقعیتی را حذف می کند.
نحو
· تغییر [تعداد دفعات مشاهده]
توضیحات:
شیفت داخلی اولین مورد را حذف می کند تعداد دفعات مشاهده پارامترهای موقعیتی
کارگردانها
تعداد دفعات مشاهده
تعداد پارامترهای موقعیتی که باید حذف شوند.
اگر تعداد واقعی پارامترهای موقعیتی کمتر از آن باشد خطا است تعداد دفعات مشاهده. اگر
حذف شده، مقدار پیش فرض یک است.
خروج وضعیت
وضعیت خروج از شیفت داخلی صفر است مگر اینکه خطایی وجود داشته باشد.
یادداشت
شیفت تعبیه شده یک توکار ویژه است.
تعداد پارامترهای موقعیتی را می توان با استفاده از # پارامتر خاص
تعلیق ساخته شده است
La تعلیق ساخته شده در پوسته را معلق می کند.
نحو
· تعلیق [-f]
توضیحات:
تعلیق داخلی یک سیگنال SIGSTOP را به تمام فرآیندهای گروه فرآیندی که به آنها میآیند ارسال میکند
فرآیند پوسته متعلق است. سیگنال فرآیندها (از جمله پوسته) را به حالت تعلیق در می آورد. در
فرآیندهای معلق با دریافت سیگنال SIGCONT از سر گرفته می شوند.
اگر پوسته تعاملی باشد و شناسه گروه فرآیند آن برابر با شناسه فرآیندی باشد
رهبر جلسه، پوسته پیام هشداری را چاپ میکند و از ارسال سیگنال امتناع میکند مگر اینکه
-f (--زور) گزینه مشخص شده است. (در چنین حالتی، پوسته کنترل کار دیگری وجود ندارد
که می تواند یک سیگنال SIGCONT برای از سرگیری پوسته معلق ارسال کند، بنابراین پوسته هرگز نمی تواند
از سر گرفته شد.)
گزینه
-f, --زور
اخطارهایی را که از ارسال سیگنال توسط پوسته جلوگیری می کند، سرکوب کنید.
خروج وضعیت
اگر سیگنال با موفقیت ارسال شود، وضعیت خروج صفر و در غیر این صورت غیر صفر است.
یادداشت
تعلیق داخلی در استاندارد POSIX تعریف نشده است.
تست ساخته شده است
La آزمون ساخته شده در یک عبارت را ارزیابی می کند
نحو
· آزمون بیان
· [ بیان ]
تست داخلی گزینه ها و عملوندها را متمایز نمی کند. همه آرگومان های خط فرمان
تفسیر می شوند بیان. اگر داخلی با نام اجرا شود [, بیان
باید دنبال شود ].
توضیحات:
تست داخلی ارزیابی می کند بیان به عنوان یک عبارت شرطی که از آن ساخته شده است
عملگرها و عملوندهایی که در زیر توضیح داده شده اند. وضعیت خروج 0 است اگر شرط درست باشد و
1 در غیر این صورت.
عملگرهای unary زیر یک فایل را آزمایش می کنند. اگر عملوند پرونده یک پیوند نمادین، فایل است
توسط لینک ارجاع داده شده تست شده است (به جز -h و -L اپراتورها).
-b پرونده
پرونده یک فایل ویژه بلوک است
-c پرونده
پرونده یک فایل ویژه کاراکتر است
-d پرونده
پرونده یک دایرکتوری است
-e پرونده
پرونده وجود دارد
-f پرونده
پرونده یک فایل معمولی است
-G پرونده
پروندهشناسه گروه همان شناسه گروه موثر پوسته است
-g پرونده
پروندهپرچم set-group-ID تنظیم شده است
-h پرونده
همان -L
-k پرونده
پروندهبیت چسبنده تنظیم شده است
-L پرونده
پرونده یک پیوند نمادین است
-N پرونده
پرونده از آخرین ویرایش تا کنون قابل دسترسی نبوده است
-O پرونده
پروندهشناسه کاربری 's همان شناسه کاربر موثر پوسته است
-p پرونده
پرونده یک FIFO (لوله با نام) است
-r پرونده
پرونده قابل خواندن است
-S پرونده
پرونده یک سوکت است
-s پرونده
پرونده خالی نیست
-u پرونده
پروندهپرچم set-user-ID تنظیم شده است
-w پرونده
پرونده قابل نوشتن است
-x پرونده
پرونده قابل اجرا است
عملگر unary زیر یک توصیفگر فایل را آزمایش می کند:
-t fd
fd با یک ترمینال مرتبط است
عملگرهای Unary زیر یک رشته را آزمایش می کنند:
-n رشته
رشته خالی نیست
-z رشته
رشته خالی است
عملگر unary زیر یک گزینه پوسته را آزمایش می کند:
-o ?انتخاب
انتخاب نام گزینه پوسته معتبر است
-o انتخاب
انتخاب یک نام گزینه پوسته معتبر است که فعال است
عملگرهای باینری زیر فایل ها را با هم مقایسه می کنند. فایلهای موجود قدیمیتر از همه در نظر گرفته میشوند
فایل های موجود
file1 -نه file2
file1 جدیدتر از file2
file1 -خیلی file2
file1 بزرگتر از file2
file1 -اگر file2
file1 یک لینک سخت است file2
عملگرهای باینری زیر رشته ها را مقایسه می کنند:
string1 = string2
string1 همان رشته است string2
string1 != string2
string1 همان رشته نیست string2
عملگرهای باینری زیر رشته ها را با توجه به ترتیب حروف الفبا مقایسه می کنند
محل فعلی:
string1 === string2
string1 برابر است با string2
string1 ! == string2
string1 برابر نیست string2
string1 < string2
string1 کمتر است از string2
string1 <= string2
string1 کمتر یا مساوی است string2
string1 > string2
string1 بزرگتر از string2
string1 >= string2
string1 بزرگتر یا مساوی با است string2
عملگر باینری زیر تطبیق الگو را انجام می دهد:
رشته =~ الگو
بیان منظم گسترش یافته الگو کبریت رشته
عملگرهای باینری زیر اعداد صحیح را مقایسه می کنند:
v1 معادله v2
v1 برابر است با v2
v1 -نه v2
v1 برابر نیست v2
v1 -بله v2
v1 بزرگتر از v2
v1 -GE v2
v1 بزرگتر یا مساوی با است v2
v1 -آن v2
v1 کمتر است از v2
v1 -ل v2
v1 کمتر یا مساوی است v2
عملگرهای باینری زیر شماره نسخه ها را با هم مقایسه می کنند:
v1 -veq v2
v1 برابر است با v2
v1 -vne v2
v1 برابر نیست v2
v1 -vgt v2
v1 بزرگتر از v2
v1 -vge v2
v1 بزرگتر یا مساوی با است v2
v1 -vlt v2
v1 کمتر است از v2
v1 -vle v2
v1 کمتر یا مساوی است v2
عملگرهای زیر را می توان برای ساخت عبارات پیچیده استفاده کرد:
! بیان
نفی (معکوس) نتیجه
( بیان )
تغییر اولویت عملگر
بیان 1 -a بیان 2
پیوند منطقی (و)
بیان 1 -o بیان 2
تفکیک منطقی (یا)
اگر عبارت یک کلمه بدون عملگر باشد، -n اپراتور فرض می شود. یک خالی
بیان به نادرست ارزیابی می شود.
مقایسه of نسخه تعداد
مقایسه شماره نسخه ها مشابه مقایسه رشته ها به ترتیب حروف الفبا است.
تفاوت ها عبارتند از:
· ارقام مجاور به عنوان یک عدد صحیح در نظر گرفته می شوند. اعداد صحیح در ریاضی مقایسه می شوند
ترتیب به جای ترتیب حروف الفبا
· ارقام بزرگتر از هر کاراکتر غیر رقمی در نظر گرفته می شوند.
به عنوان مثال، شماره نسخه 0.1.2-3 و 00.001.02-3 برابر هستند و 0.2.1 کوچکتر است
نسبت به 0.10.0.
خروج وضعیت
وضعیت خروج از تست داخلی اگر 0 است بیان درست است و 1 در غیر این صورت. خروج
وضعیت 2 است اگر بیان به دلیل یک خطای نحوی یا هر خطای دیگری قابل ارزیابی نیست
دلایل
یادداشت
عبارات پیچیده ممکن است باعث سردرگمی شود و باید از آنها اجتناب شود. از ترکیب پوسته استفاده کنید
دستورات مثلا، [ 1 معادله 1 ] && [ -t = 1 ] && ! [ فو ] ارجحیت دارد [ 1 معادله 1
-a -t = 1 -a ! فو ].
استاندارد POSIX بیان می کند که وضعیت خروج باید بزرگتر از 1 در خطا باشد. را
استاندارد POSIX عملگرهای زیر را تعریف نمی کند: -نه, -خیلی, -اگر, ==, ===, ! ==, <,
<=, >, >=, =~, -veq, -vne, -vgt, -vge, -vltو -vle. POSIX هیچ کدام مشخص نمی کند -o به عنوان یک
اپراتور unary
TIMES ساخته شده است
La بار ساخته شده در زمان مصرف CPU را چاپ می کند.
نحو
· بار
توضیحات:
زمان تعبیه شده در زمانهای CPU مصرفشده توسط فرآیند پوسته و فرزند آن را چاپ میکند
فرآیندها به خروجی استاندارد
داخلی دو خط را چاپ می کند: خط اول زمان CPU فرآیند پوسته را نشان می دهد و
دومی که پردازش های فرزند خود را شامل نمی شود
خاتمه یافت). هر خط زمان مصرف CPU در حالت کاربر و سیستم را نشان می دهد.
خروج وضعیت
وضعیت خروج از زمان های تعبیه شده صفر است مگر اینکه خطایی وجود داشته باشد.
یادداشت
زمان های ساخته شده در یک توکار ویژه است.
دام ساخته شده است
La دام ساخته شده در کنترل کننده های سیگنال را تنظیم یا چاپ می کند.
نحو
· دام
· دام اقدام سیگنال...
· دام سیگنال_شماره [سیگنال...]
· دام -p [سیگنال...]
توضیحات:
تله تعبیه شده اقداماتی را که هنگام دریافت سیگنال ها توسط پوسته انجام می شود را تنظیم یا چاپ می کند.
(آن اعمال نامیده می شوند تله.)
هنگام اجرا با اقدام و یک یا چند سیگنالs، ساخته شده در مجموعه تله برای سیگنالs
به اقدام. اگر پوسته یکی از سیگنال ها را دریافت کند، اقدام انجام می شود.
اگر عملوند اول باشد سیگنال_شماره بجای اقدام، داخلی تله ها را برای
سیگنال_شماره و سیگنالانگار اقدام بود -.
هنگام اجرا با -p (--چاپ) گزینه یا بدون عملوند، داخلی چاپ می کند
در حال حاضر تلهها را به خروجی استاندارد در قالبی تنظیم میکنیم که بتوان آن را به عنوان دستور اجرا کرد
که تله های فعلی را بازیابی می کند. اگر یک یا چند سیگنالs مشخص شده اند، فقط آن سیگنال ها
چاپ می شوند. در غیر این صورت، تمام سیگنال ها با اقدامات غیر پیش فرض چاپ می شوند. (در برخی
با این حال، در شرایط داخلی ممکن است تنظیمات تله قبلی را به جای فعلی چاپ کند.
یادداشت های زیر را ببینید.)
گزینه
-p, --چاپ
تنظیمات تله فعلی را چاپ کنید.
کارگردانها
اقدام
اقدامی که زمانی انجام خواهد شد سیگنال دریافت شد.
If اقدام یک خط فاصله است (-)، عمل به عمل پیش فرض بازنشانی می شود
توسط سیستم عامل تعریف شده است. اگر اقدام یک رشته خالی است، سیگنال نادیده گرفته می شود
هنگام دریافت در غیر این صورت، اقدام به عنوان یک رشته فرمان رفتار می شود: رشته تجزیه می شود و
هنگام دریافت سیگنال به عنوان دستور اجرا می شود. (اگر سیگنالی در حین دریافت a
دستور در حال اجرا است، عمل درست پس از اتمام دستور انجام می شود.)
سیگنال
شماره یا نام یک سیگنال
If سیگنال عدد است 0 یا نام خروج، به عنوان یک سیگنال خیالی خاص رفتار می شود که
همیشه هنگام خروج پوسته دریافت می شود. مجموعه اقدامات برای این سیگنال زمانی انجام می شود که
پوسته به طور معمول خارج می شود.
سیگنال_شماره
این مثل سیگنال، اما باید یک عدد باشد.
خروج وضعیت
وضعیت خروج تله تعبیه شده صفر است مگر اینکه خطایی وجود داشته باشد.
یادداشت
تله تعبیه شده یک توکار مخصوص است.
استاندارد POSIX ایجاب می کند که نام سیگنال باید بدون علامت مشخص شود SIG-پیوند،
حرفه ای INT و ترک کنید. به عنوان یک پسوند، یاش می پذیرد SIGنام های پیشوند مانند ثبت نام و
امضا کنید و با نام سیگنال ها بدون حساسیت رفتار می کند.
استفاده مجدد تولید of la ساخته شده در
خروجی تله داخلی را می توان در یک متغیر ذخیره کرد که بعداً می تواند توسط آن اجرا شود
eval داخلی برای بازیابی تله ها.
saved_traps=$(تله)
تله "..." INT
eval "$saved_traps"
ترفندهایی در پشت صحنه وجود دارد که این اصطلاح را مجاز می کند. شما از یک دستور استفاده می کنید
جایگزینی برای ذخیره خروجی تله تعبیه شده در متغیر. فرمان
جایگزینی در یک پوسته فرعی اجرا می شود. پوسته فرعی همه تله ها را بازنشانی می کند (به جز نادیده گرفته شده).
ones) در آغاز خودش. این ظاهراً منجر به خروجی (تقریباً) خالی می شود
از داخل ساخته شده است که نمی تواند تله ها را همانطور که انتظار می رود بازگرداند.
برای جلوگیری از این دام، POSIX از پوسته می خواهد که یکی از دو گزینه را دنبال کند
زیر است:
· اگر یک جایگزین دستور فقط شامل یک تله داخلی باشد، تله ها نباید
هنگامی که زیرشل برای اجرای داخلی شروع می شود، بازنشانی شود. یا
· یک زیر پوسته همیشه تله ها را بازنشانی می کند اما تله های قبلی را به خاطر می آورد. اگر تله
داخلی در زیر پوسته اجرا می شود اما هیچ تله داخلی دیگری اجرا نشده است
برای اصلاح تلهها در زیرشل، سپس داخلی باید موارد به خاطر سپرده شده را چاپ کند
تله
یاش دومی را اطاعت می کند.
TRUE ساخته شده است
La درست ساخته شده در هیچ کاری را با موفقیت انجام نمی دهد
نحو
· درست
توضیحات:
توکار واقعی هیچ کاری نمی کند. هر آرگومان خط فرمان نادیده گرفته می شود.
خروج وضعیت
وضعیت خروجی داخلی واقعی صفر است.
یادداشت
توکار واقعی یک توکار نیمه ویژه است.
توکارهای درست و کولون همان اثر را دارند، اما true یک توکار نیمه ویژه است
در حالی که روده بزرگ یک خاص است.
TYPE ساخته شده است
La نوع ساخته شده در یک فرمان را شناسایی می کند.
نحو
· نوع [-abefkp] [فرمان...]
توضیحات:
نوع داخلی معادل دستور داخلی با the است -V گزینه.
یادداشت
استاندارد POSIX رابطه بین نوع و دستور داخلی را تعریف نمی کند.
استاندارد گزینه هایی را برای نوع داخلی تعریف نمی کند.
حداقل یکی فرمان عملوند باید در حالت POSIXly-correct مشخص شود.
TYPESET ساخته شده است
La نوع ساخته شده در متغیرها یا توابع را چاپ یا تنظیم می کند.
نحو
· نوع [-gprxX] [متغیر[=ارزش]...]
· نوع -f[pr] [تابع...]
توضیحات:
اگر بدون اجرا شود -f (--کارکرد) گزینه، حروفچینی ساخته شده در چاپ یا مجموعه است
متغیرها به خروجی استاندارد در غیر این صورت، عملکردها را چاپ یا تنظیم می کند.
اگر با -p (--چاپ) گزینه، داخلی متغیرها یا توابع را چاپ می کند
توسط عملوندها مشخص شده است. بدون گزینه، متغیرها یا توابع را تنظیم می کند. اگر هیچ عملوندی وجود ندارد
مشخص شده است، تمام متغیرها یا توابع موجود را چاپ می کند، صرف نظر از اینکه آیا -p
(--چاپ) گزینه مشخص شده است.
گزینه
-f, --کارکرد
چاپ یا تنظیم توابع به جای متغیرها.
-g, -- جهانی
هنگام تنظیم یک متغیر جدید، در صورتی که این گزینه باشد، متغیر یک متغیر سراسری خواهد بود
مشخص شده. بدون این گزینه، متغیر یک متغیر محلی خواهد بود.
هنگام چاپ متغیرها، همه متغیرهای موجود از جمله متغیرهای سراسری چاپ می شوند
اگر این گزینه مشخص شده باشد. بدون این گزینه، فقط متغیرهای محلی چاپ می شوند.
-p, --چاپ
متغیرها یا توابع را به شکلی چاپ کنید که بتوان آن را تجزیه و به عنوان دستور اجرا کرد
که متغیرها یا توابع تنظیم شده فعلی را بازیابی می کند.
-r, --فقط خواندنی
هنگام تنظیم متغیرها یا توابع، آنها را فقط خواندنی کنید.
هنگام چاپ متغیرها یا توابع، متغیرها یا توابع فقط خواندنی را چاپ کنید.
-x, -- صادرات
هنگام تنظیم متغیرها، آنها را برای صادرات علامت گذاری کنید تا به آنها صادر شود
دستورات خارجی
هنگام چاپ متغیرها، فقط متغیرهای صادر شده را چاپ کنید.
-X, -- صادرات
هنگام تنظیم متغیرها، صادرات متغیرها را لغو کنید.
کارگردانها
متغیر (بدون ارزش)
نام متغیری که قرار است تنظیم یا چاپ شود.
بدون -p (--چاپ) گزینه، متغیر تعریف شده است (اگر هنوز تعریف نشده باشد) اما آن است
مقدار تنظیم و تغییر نکرده است. متغیرهایی که بدون مقدار تعریف می شوند به عنوان تلقی می شوند
تنظیم نشده در بسط پارامتر
متغیر=ارزش
نام یک متغیر و مقدار جدید آن
مقدار به متغیر (بدون توجه به -p (--چاپ) گزینه).
تابع
نام یک تابع موجود که قرار است تنظیم یا چاپ شود.
خروج وضعیت
وضعیت خروج تایپت داخلی صفر است مگر اینکه خطایی وجود داشته باشد.
یادداشت
اگر یک متغیر محلی قبلاً تعریف شده باشد، نمی توان یک متغیر سراسری را به تازگی تعریف کرد
با همین نام متغیر محلی بدون توجه به مقدار تنظیم می شود -g (-- جهانی) گزینه.
استاندارد POSIX تایپت داخلی را تعریف نمی کند.
توکارهای صادراتی و فقط خواندنی معادل تایپتهای داخلی هستند -gx و
-gr به ترتیب گزینه ها
حداکثر ساخته شده است
La اولیمیت ساخته شده در محدودیت منابع را تنظیم یا چاپ می کند.
نحو
· اولیمیت -a [-H|-S]
· اولیمیت [-H|-S] [-efilnqrstuvx] [محدود کردن]
توضیحات:
ulimit داخلی یک محدودیت منبع را تنظیم یا چاپ می کند.
اگر با -a (--همه) گزینه، داخلی محدودیت های فعلی را برای همه چاپ می کند
انواع منابع در غیر این صورت، محدودیت یک نوع منبع را تعیین یا چاپ می کند. در
نوع منبع را می توان با گزینه های ذکر شده در زیر مشخص کرد. محدودیت منابع خواهد بود
بر فرآیند پوسته فعلی و تمام دستورات فراخوانی شده از پوسته تأثیر می گذارد.
هر نوع منبع دارای دو مقدار حد است: حد سخت و نرم. شما می توانید یک نرم را تغییر دهید
تا زمانی که از حد سخت تجاوز نکند آزادانه محدود کنید. شما می توانید یک حد سخت را کاهش دهید
اما بدون اجازه مناسب نمی توان آن را افزایش داد.
هنگامی که -H (--سخت) و یا -S (--نرم) گزینه مشخص شده است، داخلی آن را تنظیم یا چاپ می کند
حد سخت یا نرم، به ترتیب. اگر هیچ یک از گزینه ها مشخص نشده باشد، داخلی است
هر دو حد سخت و نرم را تنظیم می کند یا حد نرم را چاپ می کند.
گزینه
-H, --سخت
یک محدودیت سخت تنظیم یا چاپ کنید.
-S, --نرم
یک محدودیت نرم تنظیم یا چاپ کنید.
-a, --همه
تمام تنظیمات محدودیت فعلی را چاپ کنید.
گزینه های زیر نوع منابع را مشخص می کنند. اگر هیچ یک از آنها مشخص نشده باشد، -f is
پیشفرض. انواع منابعی که می توان تنظیم کرد به سیستم عامل بستگی دارد.
-c, --هسته
حداکثر اندازه فایل های هسته ایجاد شده (در بلوک های 512 بایتی)
-d, --داده ها
حداکثر اندازه بخش داده یک فرآیند (به کیلوبایت)
-e, --خوب
حداکثر اولویت برنامه ریزی ("خوب")
-f, -
حداکثر اندازه فایل های ایجاد شده توسط یک فرآیند (در بلوک های 512 بایتی)
-i, -- امضا کردن
حداکثر تعداد سیگنال های معلق
-l, -- یادگاری
حداکثر اندازه حافظه قابل قفل کردن در RAM (به کیلوبایت)
-m, -rss
حداکثر اندازه مجموعه مقیم فرآیند (به کیلوبایت)
-n, --هیچ فایل
حداکثر توصیف کننده فایل + 1
-q, -msgqueue
حداکثر اندازه صف های پیام POSIX
-r, -rtprio
حداکثر اولویت زمانبندی بلادرنگ
-s, --پشته
حداکثر اندازه پشته یک فرآیند (به کیلوبایت)
-t, --cpu
حداکثر زمان CPU قابل استفاده توسط یک فرآیند (در ثانیه)
-u, -NPROC
حداکثر تعداد فرآیندها برای یک کاربر
-v, --مانند
حداکثر اندازه حافظه استفاده شده توسط یک فرآیند (به کیلوبایت)
-x, -- قفل ها
حداکثر تعداد قفل فایل
کارگردانها
محدود کردن
حدی که باید تعیین شود.
مقدار باید یک عدد صحیح غیر منفی یا یکی از باشد سخت, نرمو نا محدود. اگر ارزش
is سخت or نرم، حد جدید روی حد سخت یا نرم فعلی تنظیم شده است. اگر محدود کردن is
مشخص نشده است، محدودیت فعلی چاپ شده است.
خروج وضعیت
وضعیت خروج ulimit داخلی صفر است مگر اینکه خطایی وجود داشته باشد.
یادداشت
استاندارد POSIX هیچ گزینه دیگری را تعریف نمی کند -f. هیچ کدام تعریف نمی کند سخت, نرم، یا
نا محدود برای محدود کردن ارزش ها.
UMASK ساخته شده است
La umask ساخته شده در ماسک ایجاد حالت فایل را تنظیم یا چاپ می کند.
نحو
· umask ماسک
· umask [-S]
توضیحات:
اگر بدون اجرا شود ماسک عملوند داخلی، ایجاد حالت فایل فعلی را چاپ می کند
ماسک پوسته به خروجی استاندارد به شکلی که بعداً می تواند به عنوان استفاده شود ماسک به
ماسک فعلی را بازیابی کنید
در غیر این صورت، داخلی ماسک ایجاد حالت فایل را روی آن تنظیم می کند ماسک.
گزینه
-S, -- نمادین
به جای اعداد صحیح هشتی به شکل نمادین چاپ کنید.
کارگردانها
ماسک
ماسک ایجاد حالت فایل جدید به صورت عدد صحیح نمادین یا هشتگانه.
اکتبر عدد صحیح فرم
در شکل عدد صحیح هشتگانه، ماسک به عنوان یک عدد صحیح هشتگانه غیر منفی مشخص می شود که
مجموع مجوزهای زیر است:
0400
توسط مالک خوانده شود
0200
توسط مالک بنویس
0100
اجرا/جستجو توسط مالک
0040
توسط گروه خوانده شود
0020
توسط گروه بنویس
0010
اجرا/جستجو بر اساس گروه
0004
توسط دیگران خوانده شود
0002
نوشتن توسط دیگران
0001
اجرا/جستجو توسط دیگران
نمادین فرم
در شکل نمادین، ماسک به عنوان یک عبارت نمادین مشخص می شود که نشان می دهد
مجوزهایی که هستند نه در ماسک گنجانده شده است.
کل عبارت یک یا چند است بنداس ها با کاما از هم جدا می شوند. آ بند هست یک
دنباله از کهs به دنبال آن یک یا چند اقدامs.
A که یکی از:
u
مالک
g
گروه
o
دیگران
a
همه مالک، گروه و دیگران
دنباله خالی از کهs معادل who است a.
An اقدام است اپراتور و پس از آن اجازه، در اپراتور یکی از:
=
تنظیم کهاجازه به اجازه
+
اضافه کردن اجازه به کهاجازه
-
برداشتن اجازه از جانب کهاجازه
و اجازه یکی از:
r
خواندن
w
نوشتن
x
اجرا/جستجو
X
اجرا/جستجو (فقط در صورتی که برخی از کاربران قبلاً مجوز اجرا/جستجو داشته باشند)
s
set-user-ID و set-group-ID
u
مجوزهای فعلی کاربر
g
مجوزهای فعلی گروه
o
مجوزهای فعلی دیگران
اما بیش از یکی از r, w, x, Xو s می توان بعد از یک تک مشخص کرد عملوند.
مثلا دستور umask u=rwx،go+rw
· مجوزهای خواندن، نوشتن، و اجرا/جستجوی کاربر را آشکار می کند.
· اجازه خواندن گروه و دیگران را برمی دارد. و
· اجازه نوشتن گروه و دیگران را پوشانده است.
خروج وضعیت
وضعیت خروج Umask داخلی صفر است مگر اینکه خطایی وجود داشته باشد.
یادداشت
توکار umask یک توکار نیمه ویژه است.
استاندارد POSIX به فرمت خروجی پیشفرض نیاز ندارد (در زمانی که -S گزینه است
مشخص نشده است) به شکل عدد صحیح هشتگانه باشد.
یونالیاس ساخته شده است
La آنالیز ساخته شده در نام مستعار را تعریف نمی کند
نحو
· آنالیز نام...
· آنالیز -a
توضیحات:
unalias داخلی تعریف نام مستعار مشخص شده توسط عملوندها را حذف می کند.
گزینه
-a, --همه
همه نامهای مستعار را تعریف نکنید.
کارگردانها
نام
نام مستعار تعریف نشده است.
خروج وضعیت
وضعیت خروج unalias داخلی صفر است مگر اینکه خطایی وجود داشته باشد. یک خطا است
برای تعیین نام مستعار غیر موجود به عنوان نام.
یادداشت
Unalias داخلی یک توکار نیمه ویژه است.
بازنشانی ساخته شده است
La تنظیم نشده ساخته شده در متغیرها یا توابع را تعریف نمی کند.
نحو
· تنظیم نشده [-fv] [نام...]
توضیحات:
تنظیم نشده داخلی تعریف متغیرها یا توابع مشخص شده توسط را حذف می کند
عملوندها
اگر هیچ یک از متغیرها یا توابع مشخص شده وجود نداشته باشد، خطا نیست. آن ها هستند
بی صدا نادیده گرفته شد
گزینه
-f, --کارکرد
عدم تعریف توابع
-v, --متغیرها
تعریف نکردن متغیرها
این گزینه ها متقابلاً منحصر به فرد هستند: فقط آخرین مورد مشخص شده مؤثر است. اگر هیچ کدام
مشخص شده است، -v فرض بر این است.
کارگردانها
نام
نام متغیر یا تابعی که باید تعریف نشود.
خروج وضعیت
وضعیت خروج از تنظیم نشده داخلی صفر است مگر اینکه خطایی وجود داشته باشد.
یادداشت
توکار unset یک توکار ویژه است.
اگرچه yash این کار را انجام نمی دهد، استاندارد POSIX اجازه حذف یک تابع را می دهد، اگر هیچ کدام از آنها وجود نداشته باشد
la -f و -v گزینه ها مشخص شده است و متغیر مشخص شده وجود ندارد.
حداقل یکی نام عملوند باید در حالت POSIXly-correct مشخص شود.
صبر کن ساخته شده است
La صبر کنيد ساخته شده در منتظر پایان کار است
نحو
· صبر کنيد [کار...]
توضیحات:
انتظار داخلی منتظر می ماند تا کارهای پس زمینه پایان یابد. اگر کنترل شغل فعال باشد،
مشاغل متوقف شده فسخ شده محسوب می شوند.
در صورتی که کنترل کار غیرفعال باشد، می توان از داخلی برای انتظار دستورات ناهمزمان استفاده کرد.
اگر پوسته در حالی که توکار در انتظار است سیگنال دریافت کند و اگر تله ای تنظیم شده باشد
برای سیگنال، سپس تله اجرا می شود و داخلی بلافاصله تمام می شود (بدون
در انتظار مشاغل). اگر پوسته سیگنال SIGINT را هنگامی که کنترل کار فعال است دریافت کند،
ساخته شده در انتظار سقط می شود.
کارگردانها
کار
شناسه شغلی شغل یا شناسه فرآیند یک فرآیند در کار.
اگر نه کارs مشخص شده است، داخلی منتظر تمام کارهای موجود است.
اگر شغل مشخص شده وجود نداشته باشد، کار با آن خاتمه یافته در نظر گرفته می شود
وضعیت خروج 127.
خروج وضعیت
اگر نه کارs مشخص شد و داخلی با موفقیت منتظر تمام کارها، خروج بود
وضعیت صفر است اگر یک یا چند کارs مشخص شد، وضعیت خروج از آخرین است
کار.
اگر داخلی با یک سیگنال قطع شده باشد، وضعیت خروج یک عدد صحیح (> 128) است که
سیگنال را نشان می دهد. اگر خطای دیگری وجود داشت، وضعیت خروج بین 1 تا 126 است
(شامل).
یادداشت
انتظار داخلی یک توکار نیمه ویژه است.
شناسه فرآیند آخرین فرآیند یک کار را می توان با استفاده از ! پارامتر خاص
می توانید از مشاغل داخلی نیز برای به دست آوردن شناسه فرآیندهای فرآیندهای شغلی استفاده کنید.
با استفاده از خدمات onworks.net از yash آنلاین استفاده کنید