.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.45) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Required to disable full justification in groff 1.23.0. .if n .ds AD l .\" ======================================================================== .\" .IX Title "ENV_PARALLEL 1" .TH ENV_PARALLEL 1 2026-07-25 20260722 parallel .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "نام (NAME)" env_parallel \- اجرای موازی دستورات با انتقال کامل محیط شل جاری .SH "خلاصه دستور (SYNOPSIS)" .IX Header "SYNOPSIS" \&\fBenv_parallel\fR [\-\-record\-env|\-\-session|\-\-end\-session] [\fIگزینه‌های GNU Parallel\fR] .SH "توضیحات (DESCRIPTION)" .IX Header "DESCRIPTION" دستور \&\fBenv_parallel\fR یک تابع شل است که محیط فعلی را به GNU \&\fBparallel\fR صادر (export) می‌کند. .PP اگر این تابع شل بارگذاری نشده باشد، یک اسکریپت ساختگی به جای آن اجرا می‌شود که نحوه نصب و فعال‌سازی این تابع را توضیح می‌دهد. .PP دستور \&\fBenv_parallel\fR در زمان راه‌اندازی حدود ۱۰۰ میلی‌ثانیه کندتر از GNU \&\fBparallel\fR خالص است و برای شروع هر وظیفه تا ۳۰٪ زمان بیشتری می‌برد (معمولاً ۱۵ میلی‌ثانیه). .PP به دلیل محدودیت‌های مربوط به فضای محیط (به بخش زیر مراجعه کنید)، توصیه می‌شود تنها متغیرها و مواردی از محیط را که واقعاً نیاز دارید منتقل کنید. .PP برای کمک به این کار، می‌توانید نام‌هایی را که نباید منتقل شوند علامت‌گذاری کنید. این کار با استفاده از \&\fB\-\-session\fR یا \&\fB\-\-record\-env\fR امکان‌پذیر است. .PP .Vb 2 \& # ثبت محیط "پاک" (این کار فقط یک بار باید اجرا شود) \& env_parallel \-\-record\-env \& \& # در صورت تمایل ویرایش ~/.parallel/ignored_vars (فقط یک بار لازم است) \& \& # تعریف هر آنچه می‌خواهید استفاده کنید \& myfunc() { myalias and functions $myvar work. $1.; } \& alias myalias=\*(Aqecho Aliases\*(Aq \& myvar=\*(Aqand variables\*(Aq \& \& # استفاده از \-\-env _ برای انتقال تنها مواردی که در محیط "پاک" اولیه نبوده‌اند \& env_parallel \-\-env _ \-S localhost myfunc ::: Hooray .Ve .PP یا: .PP .Vb 2 \& # اجرای \-\-record\-env در متغیر $PARALLEL_IGNORED_NAMES \& env_parallel \-\-session \& \& # تعریف موارد دلخواه \& myfunc() { myalias and functions $myvar work. $1.; } \& alias myalias=\*(Aqecho Aliases\*(Aq \& myvar=\*(Aqand variables\*(Aq \& \& # دستور env_parallel نام‌های موجود در $PARALLEL_IGNORED_NAMES را صادر نخواهد کرد \& env_parallel \-S localhost myfunc ::: Hooray \& \& # در صورت تمایل برای پایان نشست \& env_parallel \-\-end\-session .Ve .PP در \&\fBcsh\fR گزینه \&\fB\-\-session\fR پشتیبانی نمی‌شود: .PP .Vb 2 \& # ثبت محیط "پاک" \- این دستور فقط یک بار باید اجرا شود \& env_parallel \-\-record\-env \& \& # در صورت تمایل ویرایش ~/.parallel/ignored_vars \- فقط یک بار لازم است \& \& # تعریف موارد دلخواه \& alias myalias \*(Aqecho Aliases $myvar \e!*.\*(Aq \& set myvar=\*(Aqand variables\*(Aq \& \& # استفاده از \-\-env _ برای انتقال تنها مواردی که در محیط "پاک" نبوده‌اند \& env_parallel \-\-env _ \-S localhost myalias ::: work .Ve .SS "فضای متغیرهای محیطی (Environment space)" .IX Subsection "Environment space" به صورت پیش‌فرض \&\fBenv_parallel\fR تمامی متغیرهای محیطی، آرایه‌ها، نام‌های مستعار (alias)، توابع و گزینه‌های شل را صادر می‌کند (جزئیات مربوط به هر شل را در ادامه ببینید). .PP اما این قابلیت تنها در صورتی کار می‌کند که اندازه محیط جاری کمتر از حداکثر طول مجاز یک دستور باشد و در صورت اجرا روی سرور ریموت، کمتر از نصف این حداکثر باشد. به عنوان مثال، حداکثر اندازه دستور در Bash برابر با ۱۲۸ کیلوبایت است، بنابراین اگر مقدار خروجی \*(Aq\fBset | wc \-c\fR\*(Aq بیشتر از ۱۲۸ کیلوبایت باشد، \&\fBenv_parallel\fR با شکست مواجه خواهد شد. از نظر فنی این محدودیت در \&\fBexecve\fR\|(1) وجود دارد که ماژول IPC::open3 از آن استفاده می‌کند. .PP توابع تکمیل خودکار تب در Bash (توابع Bash completion) به اشغال بیش از ۱۲۸ کیلوبایت از فضای محیط معروف هستند و دلیل اصلی شکست اجرای \&\fBenv_parallel\fR به شمار می‌روند. .PP در عوض می‌توانید از گزینه \&\fB\-\-env\fR برای تعیین دقیق متغیرها، آرایه‌ها، نام‌های مستعار و توابعی که باید صادر شوند استفاده کنید؛ زیرا این گزینه تنها موارد مشخص‌شده را صادر می‌کند. همچنین می‌توانید روش پیشنهادی بخش توضیحات را به کار ببرید. .SH "گزینه‌ها (OPTIONS)" .IX Header "OPTIONS" مشابه با گزینه‌های GNU \&\fBparallel\fR به علاوه گزینه‌های زیر: .IP \fB\-\-end\-session\fR 4 .IX Item "--end-session" لغو آخرین نشست ایجادشده با \&\fB\-\-session\fR .IP \fB\-\-record\-env\fR 4 .IX Item "--record-env" ثبت تمامی نام‌های تعریف‌شده فعلی برای نادیده گرفته شدن در تمام اجراهای بعدی \&\fBenv_parallel\fR در آینده. .IP \fB\-\-session\fR 4 .IX Item "--session" نادیده گرفتن تمام نام‌های تعریف‌شده فعلی. نام‌های مستعار، متغیرها، آرایه‌ها و توابعی که اکنون تعریف شده‌اند منتقل نخواهند شد. .Sp اما نام‌هایی که \&\fIپس از\fR اجرای \&\fBparallel \-\-session\fR تعریف شوند منتقل \&\fIخواهند شد\fR. .Sp این گزینه تنها در شل جاری معتبر است و می‌توان آن را با دستور \&\fBparallel \-\-end\-session\fR لغو کرد. .Sp می‌توان چندین دستور \&\fB\-\-session\fR را به صورت تو در تو اجرا کرد: .Sp .Vb 10 \& env_parallel \-\-session \& var=not \& # مقدار var منتقل می‌شود \& env_parallel \-Slocalhost \*(Aqecho var is $var\*(Aq ::: ignored \& env_parallel \-\-session \& # مقدار var منتقل نمی‌شود \& env_parallel \-Slocalhost \*(Aqecho var is $var\*(Aq ::: ignored \& env_parallel \-\-end\-session \& # مقدار var مجدداً منتقل می‌شود \& env_parallel \-Slocalhost \*(Aqecho var is $var\*(Aq ::: ignored .Ve .SH "شل‌های پشتیبانی‌شده (SUPPORTED SHELLS)" .IX Header "SUPPORTED SHELLS" .SS Ash .IX Subsection "Ash" \fIنصب (Installation)\fR .IX Subsection "Installation" .PP این خط را در فایل \&\f(CW$HOME\fR/.profile قرار دهید: .PP .Vb 1 \& . env_parallel.ash .Ve .PP برای مثال با اجرای: .PP .Vb 1 \& echo \*(Aq. env_parallel.ash\*(Aq >> $HOME/.profile .Ve .PP \fIکاربردهای پشتیبانی‌شده (Supported use)\fR .IX Subsection "Supported use" .PP گزینه \&\fB\-\-env\fR برای صادر کردن متغیر یا نام مستعار با نام مشخص پشتیبانی می‌شود. می‌توان چندین گزینه \&\fB\-\-env\fR را مشخص کرد. .PP گزینه \&\fB\-\-session\fR پشتیبانی می‌شود. .IP "نام‌های مستعار (aliases)" 8 .IX Item "aliases" .Vb 5 \& alias myecho=\*(Aqecho aliases\*(Aq \& env_parallel myecho ::: work \& env_parallel \-S server myecho ::: work \& env_parallel \-\-env myecho myecho ::: work \& env_parallel \-\-env myecho \-S server myecho ::: work \& \& alias multiline=\*(Aqecho multiline \& echo aliases\*(Aq \& env_parallel multiline ::: work \& env_parallel \-S server multiline ::: work \& env_parallel \-\-env multiline multiline ::: work \& env_parallel \-\-env multiline \-S server multiline ::: work .Ve .IP "توابع (functions)" 8 .IX Item "functions" .Vb 1 \& ash امکان فهرست کردن توابع تعریف‌شده را ندارد \- بنابراین پشتیبانی نمی‌شود. .Ve .IP "متغیرها (variables)" 8 .IX Item "variables" .Vb 5 \& myvar=variables \& env_parallel echo \*(Aq$myvar\*(Aq ::: work \& env_parallel \-S server echo \*(Aq$myvar\*(Aq ::: work \& env_parallel \-\-env myvar echo \*(Aq$myvar\*(Aq ::: work \& env_parallel \-\-env myvar \-S server echo \*(Aq$myvar\*(Aq ::: work .Ve .IP "آرایه‌ها (arrays)" 8 .IX Item "arrays" آرایه‌ها توسط Ash پشتیبانی نمی‌شوند. .SS Bash .IX Subsection "Bash" \fIنصب (Installation)\fR .IX Subsection "Installation" .PP این خط را در فایل \&\f(CW$HOME\fR/.bashrc قرار دهید: .PP .Vb 1 \& . env_parallel.bash .Ve .PP برای مثال با اجرای: .PP .Vb 1 \& echo \*(Aq. env_parallel.bash\*(Aq >> $HOME/.bashrc .Ve .PP \fIکاربردهای پشتیبانی‌شده (Supported use)\fR .IX Subsection "Supported use" .PP گزینه \&\fB\-\-env\fR برای صادر کردن متغیر، نام مستعار، تابع یا آرایه با نام مشخص پشتیبانی می‌شود. می‌توان چندین گزینه \&\fB\-\-env\fR را مشخص کرد. .PP گزینه \&\fB\-\-session\fR پشتیبانی می‌شود. .IP "نام‌های مستعار (aliases)" 8 .IX Item "aliases" .Vb 5 \& alias myecho=\*(Aqecho aliases\*(Aq \& env_parallel myecho ::: work \& env_parallel \-S server myecho ::: work \& env_parallel \-\-env myecho myecho ::: work \& env_parallel \-\-env myecho \-S server myecho ::: work \& \& alias multiline=\*(Aqecho multiline \& echo aliases\*(Aq \& env_parallel \*(Aqmultiline {}; \& echo but only when followed by a newline\*(Aq ::: work \& env_parallel \-S server \*(Aqmultiline {}; \& echo but only when followed by a newline\*(Aq ::: work \& env_parallel \-\-env multiline \*(Aqmultiline {}; \& echo but only when followed by a newline\*(Aq ::: work \& env_parallel \-\-env multiline \-S server \*(Aqmultiline {}; \& echo but only when followed by a newline\*(Aq ::: work .Ve .IP "توابع (functions)" 8 .IX Item "functions" .Vb 5 \& myfunc() { echo functions $*; } \& env_parallel myfunc ::: work \& env_parallel \-S server myfunc ::: work \& env_parallel \-\-env myfunc myfunc ::: work \& env_parallel \-\-env myfunc \-S server myfunc ::: work .Ve .IP "متغیرها (variables)" 8 .IX Item "variables" .Vb 5 \& myvar=variables \& env_parallel echo \*(Aq$myvar\*(Aq ::: work \& env_parallel \-S server echo \*(Aq$myvar\*(Aq ::: work \& env_parallel \-\-env myvar echo \*(Aq$myvar\*(Aq ::: work \& env_parallel \-\-env myvar \-S server echo \*(Aq$myvar\*(Aq ::: work .Ve .IP "آرایه‌ها (arrays)" 8 .IX Item "arrays" .Vb 6 \& myarray=(arrays work, too) \& env_parallel \-k echo \*(Aq${myarray[{}]}\*(Aq ::: 0 1 2 \& env_parallel \-k \-S server echo \*(Aq${myarray[{}]}\*(Aq ::: 0 1 2 \& env_parallel \-k \-\-env myarray echo \*(Aq${myarray[{}]}\*(Aq ::: 0 1 2 \& env_parallel \-k \-\-env myarray \-S server \e \& echo \*(Aq${myarray[{}]}\*(Aq ::: 0 1 2 .Ve .PP \fIاشکالات (BUGS)\fR .IX Subsection "BUGS" .PP به دلیل وجود یک باگ در Bash، نام‌های مستعاری که حاوی خط جدید (newline) هستند باید در دستور نیز با یک خط جدید دنبال شوند. برخی سیستم‌ها تحت تأثیر این باگ قرار ندارند اما با این حال یک هشدار چاپ خواهند کرد. .SS csh .IX Subsection "csh" ابزار \&\fBenv_parallel\fR برای \&\fBcsh\fR باعث اختلال در عملکرد \&\fR\f(CB$PARALLEL\fR\fB\fR می‌شود، بنابراین از \&\fB\fR\f(CB$PARALLEL\fR\fB\fR استفاده نکنید. .PP \fIنصب (Installation)\fR .IX Subsection "Installation" .PP این خط را در فایل \&\f(CW$HOME\fR/.cshrc قرار دهید: .PP .Vb 1 \& source \`which env_parallel.csh\` .Ve .PP برای مثال با اجرای: .PP .Vb 1 \& echo \*(Aqsource \`which env_parallel.csh\`\*(Aq >> $HOME/.cshrc .Ve .PP \fIکاربردهای پشتیبانی‌شده (Supported use)\fR .IX Subsection "Supported use" .PP گزینه \&\fB\-\-env\fR برای صادر کردن متغیر، نام مستعار یا آرایه با نام مشخص پشتیبانی می‌شود. می‌توان چندین گزینه \&\fB\-\-env\fR را مشخص کرد. .IP "نام‌های مستعار (aliases)" 8 .IX Item "aliases" .Vb 5 \& alias myecho \*(Aqecho aliases\*(Aq \& env_parallel myecho ::: work \& env_parallel \-S server myecho ::: work \& env_parallel \-\-env myecho myecho ::: work \& env_parallel \-\-env myecho \-S server myecho ::: work .Ve .IP "توابع (functions)" 8 .IX Item "functions" توسط \&\fBcsh\fR پشتیبانی نمی‌شود. .IP "متغیرها (variables)" 8 .IX Item "variables" .Vb 5 \& set myvar=variables \& env_parallel echo \*(Aq$myvar\*(Aq ::: work \& env_parallel \-S server echo \*(Aq$myvar\*(Aq ::: work \& env_parallel \-\-env myvar echo \*(Aq$myvar\*(Aq ::: work \& env_parallel \-\-env myvar \-S server echo \*(Aq$myvar\*(Aq ::: work .Ve .IP "آرایه‌های بدون کاراکترهای خاص (arrays with no special chars)" 8 .IX Item "arrays with no special chars" .Vb 6 \& set myarray=(arrays work, too) \& env_parallel \-k echo \e$\*(Aq{myarray[{}]}\*(Aq ::: 1 2 3 \& env_parallel \-k \-S server echo \e$\*(Aq{myarray[{}]}\*(Aq ::: 1 2 3 \& env_parallel \-k \-\-env myarray echo \e$\*(Aq{myarray[{}]}\*(Aq ::: 1 2 3 \& env_parallel \-k \-\-env myarray \-S server \e \& echo \e$\*(Aq{myarray[{}]}\*(Aq ::: 1 2 3 .Ve .SS Dash .IX Subsection "Dash" \fIنصب (Installation)\fR .IX Subsection "Installation" .PP این خط را در فایل \&\f(CW$HOME\fR/.profile قرار دهید: .PP .Vb 1 \& . env_parallel.dash .Ve .PP برای مثال با اجرای: .PP .Vb 1 \& echo \*(Aq. env_parallel.dash\*(Aq >> $HOME/.profile .Ve .PP \fIکاربردهای پشتیبانی‌شده (Supported use)\fR .IX Subsection "Supported use" .PP گزینه \&\fB\-\-env\fR برای صادر کردن متغیر یا نام مستعار با نام مشخص پشتیبانی می‌شود. می‌توان چندین گزینه \&\fB\-\-env\fR را مشخص کرد. .PP گزینه \&\fB\-\-session\fR پشتیبانی می‌شود. .IP "نام‌های مستعار (aliases)" 8 .IX Item "aliases" .Vb 5 \& alias myecho=\*(Aqecho aliases\*(Aq \& env_parallel myecho ::: work \& env_parallel \-S server myecho ::: work \& env_parallel \-\-env myecho myecho ::: work \& env_parallel \-\-env myecho \-S server myecho ::: work \& \& alias multiline=\*(Aqecho multiline \& echo aliases\*(Aq \& env_parallel multiline ::: work \& env_parallel \-S server multiline ::: work \& env_parallel \-\-env multiline multiline ::: work \& env_parallel \-\-env multiline \-S server multiline ::: work .Ve .IP "توابع (functions)" 8 .IX Item "functions" .Vb 1 \& dash امکان فهرست کردن توابع تعریف‌شده را ندارد \- بنابراین پشتیبانی نمی‌شود. .Ve .IP "متغیرها (variables)" 8 .IX Item "variables" .Vb 5 \& myvar=variables \& env_parallel echo \*(Aq$myvar\*(Aq ::: work \& env_parallel \-S server echo \*(Aq$myvar\*(Aq ::: work \& env_parallel \-\-env myvar echo \*(Aq$myvar\*(Aq ::: work \& env_parallel \-\-env myvar \-S server echo \*(Aq$myvar\*(Aq ::: work .Ve .IP "آرایه‌ها (arrays)" 8 .IX Item "arrays" .Vb 1 \& dash از آرایه‌ها پشتیبانی نمی‌کند. .Ve .SS fish .IX Subsection "fish" \fIنصب (Installation)\fR .IX Subsection "Installation" .PP این خط را در فایل \&\f(CW$HOME\fR/.config/fish/config.fish قرار دهید: .PP .Vb 1 \& source (which env_parallel.fish) .Ve .PP برای مثال با اجرای: .PP .Vb 2 \& echo \*(Aqsource (which env_parallel.fish)\*(Aq \e \& >> $HOME/.config/fish/config.fish .Ve .PP \fIکاربردهای پشتیبانی‌شده (Supported use)\fR .IX Subsection "Supported use" .PP گزینه \&\fB\-\-env\fR برای صادر کردن متغیر، نام مستعار، تابع یا آرایه با نام مشخص پشتیبانی می‌شود. می‌توان چندین گزینه \&\fB\-\-env\fR را مشخص کرد. .PP گزینه \&\fB\-\-session\fR پشتیبانی می‌شود. .IP "نام‌های مستعار (aliases)" 8 .IX Item "aliases" .Vb 5 \& alias myecho \*(Aqecho aliases\*(Aq \& env_parallel myecho ::: work \& env_parallel \-S server myecho ::: work \& env_parallel \-\-env myecho myecho ::: work \& env_parallel \-\-env myecho \-S server myecho ::: work .Ve .IP "توابع (functions)" 8 .IX Item "functions" .Vb 7 \& function myfunc \& echo functions $argv \& end \& env_parallel myfunc ::: work \& env_parallel \-S server myfunc ::: work \& env_parallel \-\-env myfunc myfunc ::: work \& env_parallel \-\-env myfunc \-S server myfunc ::: work .Ve .IP "متغیرها (variables)" 8 .IX Item "variables" .Vb 5 \& set myvar variables \& env_parallel echo \*(Aq$myvar\*(Aq ::: work \& env_parallel \-S server echo \*(Aq$myvar\*(Aq ::: work \& env_parallel \-\-env myvar echo \*(Aq$myvar\*(Aq ::: work \& env_parallel \-\-env myvar \-S server echo \*(Aq$myvar\*(Aq ::: work .Ve .IP "آرایه‌ها (arrays)" 8 .IX Item "arrays" آرایه‌ها معمولاً کار می‌کنند، اما ممکن است گاهی با خطا مواجه شوند. .Sp .Vb 6 \& set myarray arrays work, too \& env_parallel \-k echo \*(Aq$myarray[{}]\*(Aq ::: 1 2 3 \& env_parallel \-k \-S server echo \*(Aq$myarray[{}]\*(Aq ::: 1 2 3 \& env_parallel \-k \-\-env myarray echo \*(Aq$myarray[{}]\*(Aq ::: 1 2 3 \& env_parallel \-k \-\-env myarray \-S server \e \& echo \*(Aq$myarray[{}]\*(Aq ::: 1 2 3 .Ve .SS ksh .IX Subsection "ksh" \fIنصب (Installation)\fR .IX Subsection "Installation" .PP این خط را در فایل \&\f(CW$HOME\fR/.kshrc قرار دهید: .PP .Vb 1 \& source env_parallel.ksh .Ve .PP برای مثال با اجرای: .PP .Vb 1 \& echo \*(Aqsource env_parallel.ksh\*(Aq >> $HOME/.kshrc .Ve .PP \fIکاربردهای پشتیبانی‌شده (Supported use)\fR .IX Subsection "Supported use" .PP گزینه \&\fB\-\-env\fR برای صادر کردن متغیر، نام مستعار، تابع یا آرایه با نام مشخص پشتیبانی می‌شود. می‌توان چندین گزینه \&\fB\-\-env\fR را مشخص کرد. .PP گزینه \&\fB\-\-session\fR پشتیبانی می‌شود. .IP "نام‌های مستعار (aliases)" 8 .IX Item "aliases" .Vb 5 \& alias myecho=\*(Aqecho aliases\*(Aq \& env_parallel myecho ::: work \& env_parallel \-S server myecho ::: work \& env_parallel \-\-env myecho myecho ::: work \& env_parallel \-\-env myecho \-S server myecho ::: work \& \& alias multiline=\*(Aqecho multiline \& echo aliases\*(Aq \& env_parallel multiline ::: work \& env_parallel \-S server multiline ::: work \& env_parallel \-\-env multiline multiline ::: work \& env_parallel \-\-env multiline \-S server multiline ::: work .Ve .IP "توابع (functions)" 8 .IX Item "functions" .Vb 5 \& myfunc() { echo functions $*; } \& env_parallel myfunc ::: work \& env_parallel \-S server myfunc ::: work \& env_parallel \-\-env myfunc myfunc ::: work \& env_parallel \-\-env myfunc \-S server myfunc ::: work .Ve .IP "متغیرها (variables)" 8 .IX Item "variables" .Vb 5 \& myvar=variables \& env_parallel echo \*(Aq$myvar\*(Aq ::: work \& env_parallel \-S server echo \*(Aq$myvar\*(Aq ::: work \& env_parallel \-\-env myvar echo \*(Aq$myvar\*(Aq ::: work \& env_parallel \-\-env myvar \-S server echo \*(Aq$myvar\*(Aq ::: work .Ve .IP "آرایه‌ها (arrays)" 8 .IX Item "arrays" .Vb 6 \& myarray=(arrays work, too) \& env_parallel \-k echo \*(Aq${myarray[{}]}\*(Aq ::: 0 1 2 \& env_parallel \-k \-S server echo \*(Aq${myarray[{}]}\*(Aq ::: 0 1 2 \& env_parallel \-k \-\-env myarray echo \*(Aq${myarray[{}]}\*(Aq ::: 0 1 2 \& env_parallel \-k \-\-env myarray \-S server \e \& echo \*(Aq${myarray[{}]}\*(Aq ::: 0 1 2 .Ve .SS mksh .IX Subsection "mksh" \fIنصب (Installation)\fR .IX Subsection "Installation" .PP این خط را در فایل \&\f(CW$HOME\fR/.mkshrc قرار دهید: .PP .Vb 1 \& source env_parallel.mksh .Ve .PP برای مثال با اجرای: .PP .Vb 1 \& echo \*(Aqsource env_parallel.mksh\*(Aq >> $HOME/.mkshrc .Ve .PP \fIکاربردهای پشتیبانی‌شده (Supported use)\fR .IX Subsection "Supported use" .PP گزینه \&\fB\-\-env\fR برای صادر کردن متغیر، نام مستعار، تابع یا آرایه با نام مشخص پشتیبانی می‌شود. می‌توان چندین گزینه \&\fB\-\-env\fR را مشخص کرد. .PP گزینه \&\fB\-\-session\fR پشتیبانی می‌شود. .IP "نام‌های مستعار (aliases)" 8 .IX Item "aliases" .Vb 5 \& alias myecho=\*(Aqecho aliases\*(Aq \& env_parallel myecho ::: work \& env_parallel \-S server myecho ::: work \& env_parallel \-\-env myecho myecho ::: work \& env_parallel \-\-env myecho \-S server myecho ::: work \& \& alias multiline=\*(Aqecho multiline \& echo aliases\*(Aq \& env_parallel multiline ::: work \& env_parallel \-S server multiline ::: work \& env_parallel \-\-env multiline multiline ::: work \& env_parallel \-\-env multiline \-S server multiline ::: work .Ve .IP "توابع (functions)" 8 .IX Item "functions" .Vb 5 \& myfunc() { echo functions $*; } \& env_parallel myfunc ::: work \& env_parallel \-S server myfunc ::: work \& env_parallel \-\-env myfunc myfunc ::: work \& env_parallel \-\-env myfunc \-S server myfunc ::: work .Ve .IP "متغیرها (variables)" 8 .IX Item "variables" .Vb 5 \& myvar=variables \& env_parallel echo \*(Aq$myvar\*(Aq ::: work \& env_parallel \-S server echo \*(Aq$myvar\*(Aq ::: work \& env_parallel \-\-env myvar echo \*(Aq$myvar\*(Aq ::: work \& env_parallel \-\-env myvar \-S server echo \*(Aq$myvar\*(Aq ::: work .Ve .IP "آرایه‌ها (arrays)" 8 .IX Item "arrays" .Vb 6 \& myarray=(arrays work, too) \& env_parallel \-k echo \*(Aq${myarray[{}]}\*(Aq ::: 0 1 2 \& env_parallel \-k \-S server echo \*(Aq${myarray[{}]}\*(Aq ::: 0 1 2 \& env_parallel \-k \-\-env myarray echo \*(Aq${myarray[{}]}\*(Aq ::: 0 1 2 \& env_parallel \-k \-\-env myarray \-S server \e \& echo \*(Aq${myarray[{}]}\*(Aq ::: 0 1 2 .Ve .SS pdksh .IX Subsection "pdksh" \fIنصب (Installation)\fR .IX Subsection "Installation" .PP این خط را در فایل \&\f(CW$HOME\fR/.profile قرار دهید: .PP .Vb 1 \& source env_parallel.pdksh .Ve .PP برای مثال با اجرای: .PP .Vb 1 \& echo \*(Aqsource env_parallel.pdksh\*(Aq >> $HOME/.profile .Ve .PP \fIکاربردهای پشتیبانی‌شده (Supported use)\fR .IX Subsection "Supported use" .PP گزینه \&\fB\-\-env\fR برای صادر کردن متغیر، نام مستعار، تابع یا آرایه با نام مشخص پشتیبانی می‌شود. می‌توان چندین گزینه \&\fB\-\-env\fR را مشخص کرد. .PP گزینه \&\fB\-\-session\fR پشتیبانی می‌شود. .IP "نام‌های مستعار (aliases)" 8 .IX Item "aliases" .Vb 5 \& alias myecho="echo aliases"; \& env_parallel myecho ::: work; \& env_parallel \-S server myecho ::: work; \& env_parallel \-\-env myecho myecho ::: work; \& env_parallel \-\-env myecho \-S server myecho ::: work .Ve .IP "توابع (functions)" 8 .IX Item "functions" .Vb 5 \& myfunc() { echo functions $*; }; \& env_parallel myfunc ::: work; \& env_parallel \-S server myfunc ::: work; \& env_parallel \-\-env myfunc myfunc ::: work; \& env_parallel \-\-env myfunc \-S server myfunc ::: work .Ve .IP "متغیرها (variables)" 8 .IX Item "variables" .Vb 5 \& myvar=variables; \& env_parallel echo "\e$myvar" ::: work; \& env_parallel \-S server echo "\e$myvar" ::: work; \& env_parallel \-\-env myvar echo "\e$myvar" ::: work; \& env_parallel \-\-env myvar \-S server echo "\e$myvar" ::: work .Ve .IP "آرایه‌ها (arrays)" 8 .IX Item "arrays" .Vb 6 \& myarray=(arrays work, too); \& env_parallel \-k echo "\e${myarray[{}]}" ::: 0 1 2; \& env_parallel \-k \-S server echo "\e${myarray[{}]}" ::: 0 1 2; \& env_parallel \-k \-\-env myarray echo "\e${myarray[{}]}" ::: 0 1 2; \& env_parallel \-k \-\-env myarray \-S server \e \& echo "\e${myarray[{}]}" ::: 0 1 2 .Ve .SS sh .IX Subsection "sh" \fIنصب (Installation)\fR .IX Subsection "Installation" .PP این خط را در فایل \&\f(CW$HOME\fR/.profile قرار دهید: .PP .Vb 1 \& . env_parallel.sh .Ve .PP برای مثال با اجرای: .PP .Vb 1 \& echo \*(Aq. env_parallel.sh\*(Aq >> $HOME/.profile .Ve .PP \fIکاربردهای پشتیبانی‌شده (Supported use)\fR .IX Subsection "Supported use" .PP گزینه \&\fB\-\-env\fR برای صادر کردن متغیر یا نام مستعار با نام مشخص پشتیبانی می‌شود. می‌توان چندین گزینه \&\fB\-\-env\fR را مشخص کرد. .PP گزینه \&\fB\-\-session\fR پشتیبانی می‌شود. .IP "نام‌های مستعار (aliases)" 8 .IX Item "aliases" .Vb 1 \& sh از نام‌های مستعار پشتیبانی نمی‌کند. .Ve .IP "توابع (functions)" 8 .IX Item "functions" .Vb 5 \& myfunc() { echo functions $*; } \& env_parallel myfunc ::: work \& env_parallel \-S server myfunc ::: work \& env_parallel \-\-env myfunc myfunc ::: work \& env_parallel \-\-env myfunc \-S server myfunc ::: work .Ve .IP "متغیرها (variables)" 8 .IX Item "variables" .Vb 5 \& myvar=variables \& env_parallel echo \*(Aq$myvar\*(Aq ::: work \& env_parallel \-S server echo \*(Aq$myvar\*(Aq ::: work \& env_parallel \-\-env myvar echo \*(Aq$myvar\*(Aq ::: work \& env_parallel \-\-env myvar \-S server echo \*(Aq$myvar\*(Aq ::: work .Ve .IP "آرایه‌ها (arrays)" 8 .IX Item "arrays" .Vb 1 \& sh از آرایه‌ها پشتیبانی نمی‌کند. .Ve .SS tcsh .IX Subsection "tcsh" ابزار \&\fBenv_parallel\fR برای \&\fBtcsh\fR باعث اختلال در عملکرد \&\fR\f(CB$PARALLEL\fR\fB\fR می‌شود، بنابراین از \&\fB\fR\f(CB$PARALLEL\fR\fB\fR استفاده نکنید. .PP \fIنصب (Installation)\fR .IX Subsection "Installation" .PP این خط را در فایل \&\f(CW$HOME\fR/.tcshrc قرار دهید: .PP .Vb 1 \& source \`which env_parallel.tcsh\` .Ve .PP برای مثال با اجرای: .PP .Vb 1 \& echo \*(Aqsource \`which env_parallel.tcsh\`\*(Aq >> $HOME/.tcshrc .Ve .PP \fIکاربردهای پشتیبانی‌شده (Supported use)\fR .IX Subsection "Supported use" .PP گزینه \&\fB\-\-env\fR برای صادر کردن متغیر، نام مستعار یا آرایه با نام مشخص پشتیبانی می‌شود. می‌توان چندین گزینه \&\fB\-\-env\fR را مشخص کرد. .IP "نام‌های مستعار (aliases)" 8 .IX Item "aliases" .Vb 5 \& alias myecho \*(Aqecho aliases\*(Aq \& env_parallel myecho ::: work \& env_parallel \-S server myecho ::: work \& env_parallel \-\-env myecho myecho ::: work \& env_parallel \-\-env myecho \-S server myecho ::: work .Ve .IP "توابع (functions)" 8 .IX Item "functions" توسط \&\fBtcsh\fR پشتیبانی نمی‌شود. .IP "متغیرها (variables)" 8 .IX Item "variables" .Vb 5 \& set myvar=variables \& env_parallel echo \*(Aq$myvar\*(Aq ::: work \& env_parallel \-S server echo \*(Aq$myvar\*(Aq ::: work \& env_parallel \-\-env myvar echo \*(Aq$myvar\*(Aq ::: work \& env_parallel \-\-env myvar \-S server echo \*(Aq$myvar\*(Aq ::: work .Ve .IP "آرایه‌های بدون کاراکترهای خاص (arrays with no special chars)" 8 .IX Item "arrays with no special chars" .Vb 6 \& set myarray=(arrays work, too) \& env_parallel \-k echo \e$\*(Aq{myarray[{}]}\*(Aq ::: 1 2 3 \& env_parallel \-k \-S server echo \e$\*(Aq{myarray[{}]}\*(Aq ::: 1 2 3 \& env_parallel \-k \-\-env myarray echo \e$\*(Aq{myarray[{}]}\*(Aq ::: 1 2 3 \& env_parallel \-k \-\-env myarray \-S server \e \& echo \e$\*(Aq{myarray[{}]}\*(Aq ::: 1 2 3 .Ve .SS Zsh .IX Subsection "Zsh" \fIنصب (Installation)\fR .IX Subsection "Installation" .PP این خط را در فایل \&\f(CW$HOME\fR/.zshrc قرار دهید: .PP .Vb 1 \& . env_parallel.zsh .Ve .PP برای مثال با اجرای: .PP .Vb 1 \& echo \*(Aq. env_parallel.zsh\*(Aq >> $HOME/.zshenv .Ve .PP \fIکاربردهای پشتیبانی‌شده (Supported use)\fR .IX Subsection "Supported use" .PP گزینه \&\fB\-\-env\fR برای صادر کردن متغیر، نام مستعار، تابع یا آرایه با نام مشخص پشتیبانی می‌شود. می‌توان چندین گزینه \&\fB\-\-env\fR را مشخص کرد. .PP گزینه \&\fB\-\-session\fR پشتیبانی می‌شود. .IP "نام‌های مستعار (aliases)" 8 .IX Item "aliases" .Vb 5 \& alias myecho=\*(Aqecho aliases\*(Aq \& env_parallel myecho ::: work \& env_parallel \-S server myecho ::: work \& env_parallel \-\-env myecho myecho ::: work \& env_parallel \-\-env myecho \-S server myecho ::: work \& \& alias multiline=\*(Aqecho multiline \& echo aliases\*(Aq \& env_parallel multiline ::: work \& env_parallel \-S server multiline ::: work \& env_parallel \-\-env multiline multiline ::: work \& env_parallel \-\-env multiline \-S server multiline ::: work .Ve .IP "توابع (functions)" 8 .IX Item "functions" .Vb 5 \& myfunc() { echo functions $*; } \& env_parallel myfunc ::: work \& env_parallel \-S server myfunc ::: work \& env_parallel \-\-env myfunc myfunc ::: work \& env_parallel \-\-env myfunc \-S server myfunc ::: work .Ve .IP "متغیرها (variables)" 8 .IX Item "variables" .Vb 5 \& myvar=variables \& env_parallel echo \*(Aq$myvar\*(Aq ::: work \& env_parallel \-S server echo \*(Aq$myvar\*(Aq ::: work \& env_parallel \-\-env myvar echo \*(Aq$myvar\*(Aq ::: work \& env_parallel \-\-env myvar \-S server echo \*(Aq$myvar\*(Aq ::: work .Ve .IP "آرایه‌ها (arrays)" 8 .IX Item "arrays" .Vb 6 \& myarray=(arrays work, too) \& env_parallel \-k echo \*(Aq${myarray[{}]}\*(Aq ::: 1 2 3 \& env_parallel \-k \-S server echo \*(Aq${myarray[{}]}\*(Aq ::: 1 2 3 \& env_parallel \-k \-\-env myarray echo \*(Aq${myarray[{}]}\*(Aq ::: 1 2 3 \& env_parallel \-k \-\-env myarray \-S server \e \& echo \*(Aq${myarray[{}]}\*(Aq ::: 1 2 3 .Ve .SH "وضعیت خروج (EXIT STATUS)" .IX Header "EXIT STATUS" مشابه با GNU \&\fBparallel\fR. .SH "نویسنده (AUTHOR)" .IX Header "AUTHOR" هنگام استفاده از GNU \&\fBenv_parallel\fR برای مقالات و انتشارات علمی، لطفاً به منبع زیر ارجاع دهید: .PP O. Tange (2018): GNU Parallel 2018, March 2018, ISBN 9781387509881, DOI: 10.5281/zenodo.1146014. .PP این کار به تأمین مالی توسعه بیشتر پروژه کمک می‌کند و برای شما هزینه‌ای نخواهد داشت. در صورتی که مبلغ ۱۰٬۰۰۰ یورو بپردازید، می‌توانید بدون ذکر منبع از GNU Parallel استفاده کنید. .PP حق نشر (C) 2007\-10\-18 Ole Tange, http://ole.tange.dk .PP حق نشر (C) 2008\-2010 Ole Tange, http://ole.tange.dk .PP حق نشر (C) 2010\-2026 Ole Tange, http://ole.tange.dk و بنیاد نرم‌افزار آزاد (Free Software Foundation, Inc.) .SH "مجوز (LICENSE)" .IX Header "LICENSE" این برنامه یک نرم‌افزار آزاد است؛ شما می‌توانید آن را تحت شرایط مجوز عمومی همگانی گنو (GNU GPL) همان‌طور که توسط بنیاد نرم‌افزارهای آزاد منتشر شده است، چه نسخه ۳ مجوز یا (به انتخاب خودتان) هر نسخه بعدی، بازتوزیع کرده یا تغییر دهید. .PP این برنامه به این امید توزیع شده است که مفید واقع شود، اما بدون هیچ‌گونه ضمانتی؛ حتی بدون ضمانت ضمنی قابل فروش بودن یا مناسب بودن برای یک هدف خاص. برای جزئیات بیشتر به مجوز عمومی همگانی گنو مراجعه کنید. .PP شما باید همراه با این برنامه یک نسخه از مجوز عمومی همگانی گنو را دریافت کرده باشید. در غیر این صورت، به مراجعه کنید. .SS "مجوز مستندات ۱ (Documentation license I)" .IX Subsection "Documentation license I" اجازه کپی، توزیع و/یا تغییر این سند تحت شرایط مجوز مستندات آزاد گنو (GNU FDL)، نسخه ۱.۳ یا هر نسخه بعدی منتشر شده توسط بنیاد نرم‌افزار آزاد، بدون بخش‌های تغییرناپذیر، بدون متون روی جلد و بدون متون پشت جلد داده می‌شود. یک نسخه از این مجوز در فایل LICENSES/GFDL\-1.3\-or\-later.txt گنجانده شده است. .SS "مجوز مستندات ۲ (Documentation license II)" .IX Subsection "Documentation license II" شما آزادید: .IP "\fBبرای همرسانی (to Share)\fR" 9 .IX Item "to Share" اثر را کپی، توزیع و منتقل کنید .IP "\fBبرای بازآفرینی (to Remix)\fR" 9 .IX Item "to Remix" اثر را تطبیق داده و تغییر دهید .PP تحت شرایط زیر: .IP \fBانتساب (Attribution)\fR 9 .IX Item "Attribution" باید اثر را به شیوه‌ای که توسط نویسنده یا اعطاکننده مجوز مشخص شده است منتسب کنید (اما نه به هیچ شیوه‌ای که نشان دهد آنها شما یا استفاده شما از اثر را تأیید می‌کنند). .IP "\fBاشتراک یکسان (Share Alike)\fR" 9 .IX Item "Share Alike" اگر در این اثر تغییری ایجاد کنید، آن را متحول سازید، یا بر پایه آن اثری بسازید، تنها می‌توانید اثر حاصل را تحت همان مجوز، مجوزی مشابه یا سازگار با آن توزیع کنید. .PP با این تفهیم که: .IP \fBصرف‌نظر کردن (Waiver)\fR 9 .IX Item "Waiver" در صورت کسب اجازه از دارنده حق نشر، می‌توان از هر یک از شرایط فوق صرف‌نظر کرد. .IP "\fBمالکیت عمومی (Public Domain)\fR" 9 .IX Item "Public Domain" در مواردی که اثر یا هر یک از عناصر آن بر اساس قوانین حاکم در مالکیت عمومی قرار داشته باشد، این وضعیت به هیچ وجه تحت تأثیر مجوز قرار نمی‌گیرد. .IP "\fBسایر حقوق (Other Rights)\fR" 9 .IX Item "Other Rights" حقوق زیر به هیچ وجه تحت تأثیر این مجوز قرار نمی‌گیرند: .RS 9 .IP \(bu 2 حقوق معامله منصفانه یا استفاده منصفانه شما، یا سایر استثناها و محدودیت‌های قابل اعمال در حق نشر؛ .IP \(bu 2 حقوق معنوی نویسنده؛ .IP \(bu 2 حقوقی که سایر اشخاص ممکن است در خود اثر یا در نحوه استفاده از اثر داشته باشند، مانند حقوق تبلیغات یا حریم خصوصی. .RE .IP \fBاعلامیه (Notice)\fR 9 .IX Item "Notice" برای هرگونه استفاده مجدد یا توزیع، باید شرایط مجوز این اثر را برای دیگران شفاف سازید. .PP یک نسخه از متن کامل مجوز در فایل LICENCES/CC\-BY\-SA\-4.0.txt گنجانده شده است. .SH "پیش‌نیازها (DEPENDENCIES)" .IX Header "DEPENDENCIES" دستور \&\fBenv_parallel\fR از GNU \&\fBparallel\fR استفاده می‌کند. .SH "همچنین ببینید (SEE ALSO)" .IX Header "SEE ALSO" \&\fBparallel\fR(1), \fBash\fR(1), \fBbash\fR(1), \fBcsh\fR(1), \fBdash\fR(1), \&\fBfish\fR(1), \fBksh\fR(1), \fBpdksh\fR(1) \fBtcsh\fR(1), \fBzsh\fR(1).