ENV_PARALLEL(1) parallel ENV_PARALLEL(1)

env_parallel - اجرای موازی دستورات با انتقال کامل محیط شل جاری

env_parallel [--record-env|--session|--end-session] [گزینه‌های GNU Parallel]

دستور env_parallel یک تابع شل است که محیط فعلی را به GNU parallel صادر (export) می‌کند.

اگر این تابع شل بارگذاری نشده باشد، یک اسکریپت ساختگی به جای آن اجرا می‌شود که نحوه نصب و فعال‌سازی این تابع را توضیح می‌دهد.

دستور env_parallel در زمان راه‌اندازی حدود ۱۰۰ میلی‌ثانیه کندتر از GNU parallel خالص است و برای شروع هر وظیفه تا ۳۰٪ زمان بیشتری می‌برد (معمولاً ۱۵ میلی‌ثانیه).

به دلیل محدودیت‌های مربوط به فضای محیط (به بخش زیر مراجعه کنید)، توصیه می‌شود تنها متغیرها و مواردی از محیط را که واقعاً نیاز دارید منتقل کنید.

برای کمک به این کار، می‌توانید نام‌هایی را که نباید منتقل شوند علامت‌گذاری کنید. این کار با استفاده از --session یا --record-env امکان‌پذیر است.

# ثبت محیط "پاک" (این کار فقط یک بار باید اجرا شود)
env_parallel --record-env
# در صورت تمایل ویرایش ~/.parallel/ignored_vars (فقط یک بار لازم است)
# تعریف هر آنچه می‌خواهید استفاده کنید
myfunc() { myalias and functions $myvar work. $1.; }
alias myalias='echo Aliases'
myvar='and variables'
# استفاده از --env _ برای انتقال تنها مواردی که در محیط "پاک" اولیه نبوده‌اند
env_parallel --env _ -S localhost myfunc ::: Hooray

یا:

# اجرای --record-env در متغیر $PARALLEL_IGNORED_NAMES
env_parallel --session
# تعریف موارد دلخواه
myfunc() { myalias and functions $myvar work. $1.; }
alias myalias='echo Aliases'
myvar='and variables'
# دستور env_parallel نام‌های موجود در $PARALLEL_IGNORED_NAMES را صادر نخواهد کرد
env_parallel -S localhost myfunc ::: Hooray
# در صورت تمایل برای پایان نشست
env_parallel --end-session

در csh گزینه --session پشتیبانی نمی‌شود:

# ثبت محیط "پاک" - این دستور فقط یک بار باید اجرا شود
env_parallel --record-env
# در صورت تمایل ویرایش ~/.parallel/ignored_vars - فقط یک بار لازم است
# تعریف موارد دلخواه
alias myalias 'echo Aliases $myvar \!*.'
set myvar='and variables'
# استفاده از --env _ برای انتقال تنها مواردی که در محیط "پاک" نبوده‌اند
env_parallel --env _ -S localhost myalias ::: work

به صورت پیش‌فرض env_parallel تمامی متغیرهای محیطی، آرایه‌ها، نام‌های مستعار (alias)، توابع و گزینه‌های شل را صادر می‌کند (جزئیات مربوط به هر شل را در ادامه ببینید).

اما این قابلیت تنها در صورتی کار می‌کند که اندازه محیط جاری کمتر از حداکثر طول مجاز یک دستور باشد و در صورت اجرا روی سرور ریموت، کمتر از نصف این حداکثر باشد. به عنوان مثال، حداکثر اندازه دستور در Bash برابر با ۱۲۸ کیلوبایت است، بنابراین اگر مقدار خروجی 'set | wc -c' بیشتر از ۱۲۸ کیلوبایت باشد، env_parallel با شکست مواجه خواهد شد. از نظر فنی این محدودیت در execve(1) وجود دارد که ماژول IPC::open3 از آن استفاده می‌کند.

توابع تکمیل خودکار تب در Bash (توابع Bash completion) به اشغال بیش از ۱۲۸ کیلوبایت از فضای محیط معروف هستند و دلیل اصلی شکست اجرای env_parallel به شمار می‌روند.

در عوض می‌توانید از گزینه --env برای تعیین دقیق متغیرها، آرایه‌ها، نام‌های مستعار و توابعی که باید صادر شوند استفاده کنید؛ زیرا این گزینه تنها موارد مشخص‌شده را صادر می‌کند. همچنین می‌توانید روش پیشنهادی بخش توضیحات را به کار ببرید.

مشابه با گزینه‌های GNU parallel به علاوه گزینه‌های زیر:

لغو آخرین نشست ایجادشده با --session
ثبت تمامی نام‌های تعریف‌شده فعلی برای نادیده گرفته شدن در تمام اجراهای بعدی env_parallel در آینده.
نادیده گرفتن تمام نام‌های تعریف‌شده فعلی. نام‌های مستعار، متغیرها، آرایه‌ها و توابعی که اکنون تعریف شده‌اند منتقل نخواهند شد.

اما نام‌هایی که پس از اجرای parallel --session تعریف شوند منتقل خواهند شد.

این گزینه تنها در شل جاری معتبر است و می‌توان آن را با دستور parallel --end-session لغو کرد.

می‌توان چندین دستور --session را به صورت تو در تو اجرا کرد:

env_parallel --session
var=not
# مقدار var منتقل می‌شود
env_parallel -Slocalhost 'echo var is $var' ::: ignored
env_parallel --session
# مقدار var منتقل نمی‌شود
env_parallel -Slocalhost 'echo var is $var' ::: ignored
env_parallel --end-session
# مقدار var مجدداً منتقل می‌شود
env_parallel -Slocalhost 'echo var is $var' ::: ignored

نصب (Installation)

این خط را در فایل $HOME/.profile قرار دهید:

. env_parallel.ash

برای مثال با اجرای:

echo '. env_parallel.ash' >> $HOME/.profile

کاربردهای پشتیبانی‌شده (Supported use)

گزینه --env برای صادر کردن متغیر یا نام مستعار با نام مشخص پشتیبانی می‌شود. می‌توان چندین گزینه --env را مشخص کرد.

گزینه --session پشتیبانی می‌شود.

نام‌های مستعار (aliases)
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
alias multiline='echo multiline
  echo aliases'
env_parallel multiline ::: work
env_parallel -S server multiline ::: work
env_parallel --env multiline multiline ::: work
env_parallel --env multiline -S server multiline ::: work
توابع (functions)
ash امکان فهرست کردن توابع تعریف‌شده را ندارد - بنابراین پشتیبانی نمی‌شود.
متغیرها (variables)
myvar=variables
env_parallel echo '$myvar' ::: work
env_parallel -S server echo '$myvar' ::: work
env_parallel --env myvar echo '$myvar' ::: work
env_parallel --env myvar -S server echo '$myvar' ::: work
آرایه‌ها (arrays)
آرایه‌ها توسط Ash پشتیبانی نمی‌شوند.

نصب (Installation)

این خط را در فایل $HOME/.bashrc قرار دهید:

. env_parallel.bash

برای مثال با اجرای:

echo '. env_parallel.bash' >> $HOME/.bashrc

کاربردهای پشتیبانی‌شده (Supported use)

گزینه --env برای صادر کردن متغیر، نام مستعار، تابع یا آرایه با نام مشخص پشتیبانی می‌شود. می‌توان چندین گزینه --env را مشخص کرد.

گزینه --session پشتیبانی می‌شود.

نام‌های مستعار (aliases)
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
alias multiline='echo multiline
  echo aliases'
env_parallel 'multiline {};
  echo but only when followed by a newline' ::: work
env_parallel -S server 'multiline {};
  echo but only when followed by a newline' ::: work
env_parallel --env multiline 'multiline {};
  echo but only when followed by a newline' ::: work
env_parallel --env multiline -S server 'multiline {};
  echo but only when followed by a newline' ::: work
توابع (functions)
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
متغیرها (variables)
myvar=variables
env_parallel echo '$myvar' ::: work
env_parallel -S server echo '$myvar' ::: work
env_parallel --env myvar echo '$myvar' ::: work
env_parallel --env myvar -S server echo '$myvar' ::: work
آرایه‌ها (arrays)
myarray=(arrays work, too)
env_parallel -k echo '${myarray[{}]}' ::: 0 1 2
env_parallel -k -S server echo '${myarray[{}]}' ::: 0 1 2
env_parallel -k --env myarray echo '${myarray[{}]}' ::: 0 1 2
env_parallel -k --env myarray -S server \
  echo '${myarray[{}]}' ::: 0 1 2

اشکالات (BUGS)

به دلیل وجود یک باگ در Bash، نام‌های مستعاری که حاوی خط جدید (newline) هستند باید در دستور نیز با یک خط جدید دنبال شوند. برخی سیستم‌ها تحت تأثیر این باگ قرار ندارند اما با این حال یک هشدار چاپ خواهند کرد.

ابزار env_parallel برای csh باعث اختلال در عملکرد $PARALLEL می‌شود، بنابراین از $PARALLEL استفاده نکنید.

نصب (Installation)

این خط را در فایل $HOME/.cshrc قرار دهید:

source `which env_parallel.csh`

برای مثال با اجرای:

echo 'source `which env_parallel.csh`' >> $HOME/.cshrc

کاربردهای پشتیبانی‌شده (Supported use)

گزینه --env برای صادر کردن متغیر، نام مستعار یا آرایه با نام مشخص پشتیبانی می‌شود. می‌توان چندین گزینه --env را مشخص کرد.

نام‌های مستعار (aliases)
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
توابع (functions)
توسط csh پشتیبانی نمی‌شود.
متغیرها (variables)
set myvar=variables
env_parallel echo '$myvar' ::: work
env_parallel -S server echo '$myvar' ::: work
env_parallel --env myvar echo '$myvar' ::: work
env_parallel --env myvar -S server echo '$myvar' ::: work
آرایه‌های بدون کاراکترهای خاص (arrays with no special chars)
set myarray=(arrays work, too)
env_parallel -k echo \$'{myarray[{}]}' ::: 1 2 3
env_parallel -k -S server echo \$'{myarray[{}]}' ::: 1 2 3
env_parallel -k --env myarray echo \$'{myarray[{}]}' ::: 1 2 3
env_parallel -k --env myarray -S server \
  echo \$'{myarray[{}]}' ::: 1 2 3

نصب (Installation)

این خط را در فایل $HOME/.profile قرار دهید:

. env_parallel.dash

برای مثال با اجرای:

echo '. env_parallel.dash' >> $HOME/.profile

کاربردهای پشتیبانی‌شده (Supported use)

گزینه --env برای صادر کردن متغیر یا نام مستعار با نام مشخص پشتیبانی می‌شود. می‌توان چندین گزینه --env را مشخص کرد.

گزینه --session پشتیبانی می‌شود.

نام‌های مستعار (aliases)
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
alias multiline='echo multiline
  echo aliases'
env_parallel multiline ::: work
env_parallel -S server multiline ::: work
env_parallel --env multiline multiline ::: work
env_parallel --env multiline -S server multiline ::: work
توابع (functions)
dash امکان فهرست کردن توابع تعریف‌شده را ندارد - بنابراین پشتیبانی نمی‌شود.
متغیرها (variables)
myvar=variables
env_parallel echo '$myvar' ::: work
env_parallel -S server echo '$myvar' ::: work
env_parallel --env myvar echo '$myvar' ::: work
env_parallel --env myvar -S server echo '$myvar' ::: work
آرایه‌ها (arrays)
dash از آرایه‌ها پشتیبانی نمی‌کند.

نصب (Installation)

این خط را در فایل $HOME/.config/fish/config.fish قرار دهید:

source (which env_parallel.fish)

برای مثال با اجرای:

echo 'source (which env_parallel.fish)' \
  >> $HOME/.config/fish/config.fish

کاربردهای پشتیبانی‌شده (Supported use)

گزینه --env برای صادر کردن متغیر، نام مستعار، تابع یا آرایه با نام مشخص پشتیبانی می‌شود. می‌توان چندین گزینه --env را مشخص کرد.

گزینه --session پشتیبانی می‌شود.

نام‌های مستعار (aliases)
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
توابع (functions)
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
متغیرها (variables)
set myvar variables
env_parallel echo '$myvar' ::: work
env_parallel -S server echo '$myvar' ::: work
env_parallel --env myvar echo '$myvar' ::: work
env_parallel --env myvar -S server echo '$myvar' ::: work
آرایه‌ها (arrays)
آرایه‌ها معمولاً کار می‌کنند، اما ممکن است گاهی با خطا مواجه شوند.
set myarray arrays work, too
env_parallel -k echo '$myarray[{}]' ::: 1 2 3
env_parallel -k -S server echo '$myarray[{}]' ::: 1 2 3
env_parallel -k --env myarray echo '$myarray[{}]' ::: 1 2 3
env_parallel -k --env myarray -S server \
  echo '$myarray[{}]' ::: 1 2 3

نصب (Installation)

این خط را در فایل $HOME/.kshrc قرار دهید:

source env_parallel.ksh

برای مثال با اجرای:

echo 'source env_parallel.ksh' >> $HOME/.kshrc

کاربردهای پشتیبانی‌شده (Supported use)

گزینه --env برای صادر کردن متغیر، نام مستعار، تابع یا آرایه با نام مشخص پشتیبانی می‌شود. می‌توان چندین گزینه --env را مشخص کرد.

گزینه --session پشتیبانی می‌شود.

نام‌های مستعار (aliases)
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
alias multiline='echo multiline
  echo aliases'
env_parallel multiline ::: work
env_parallel -S server multiline ::: work
env_parallel --env multiline multiline ::: work
env_parallel --env multiline -S server multiline ::: work
توابع (functions)
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
متغیرها (variables)
myvar=variables
env_parallel echo '$myvar' ::: work
env_parallel -S server echo '$myvar' ::: work
env_parallel --env myvar echo '$myvar' ::: work
env_parallel --env myvar -S server echo '$myvar' ::: work
آرایه‌ها (arrays)
myarray=(arrays work, too)
env_parallel -k echo '${myarray[{}]}' ::: 0 1 2
env_parallel -k -S server echo '${myarray[{}]}' ::: 0 1 2
env_parallel -k --env myarray echo '${myarray[{}]}' ::: 0 1 2
env_parallel -k --env myarray -S server \
  echo '${myarray[{}]}' ::: 0 1 2

نصب (Installation)

این خط را در فایل $HOME/.mkshrc قرار دهید:

source env_parallel.mksh

برای مثال با اجرای:

echo 'source env_parallel.mksh' >> $HOME/.mkshrc

کاربردهای پشتیبانی‌شده (Supported use)

گزینه --env برای صادر کردن متغیر، نام مستعار، تابع یا آرایه با نام مشخص پشتیبانی می‌شود. می‌توان چندین گزینه --env را مشخص کرد.

گزینه --session پشتیبانی می‌شود.

نام‌های مستعار (aliases)
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
alias multiline='echo multiline
  echo aliases'
env_parallel multiline ::: work
env_parallel -S server multiline ::: work
env_parallel --env multiline multiline ::: work
env_parallel --env multiline -S server multiline ::: work
توابع (functions)
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
متغیرها (variables)
myvar=variables
env_parallel echo '$myvar' ::: work
env_parallel -S server echo '$myvar' ::: work
env_parallel --env myvar echo '$myvar' ::: work
env_parallel --env myvar -S server echo '$myvar' ::: work
آرایه‌ها (arrays)
myarray=(arrays work, too)
env_parallel -k echo '${myarray[{}]}' ::: 0 1 2
env_parallel -k -S server echo '${myarray[{}]}' ::: 0 1 2
env_parallel -k --env myarray echo '${myarray[{}]}' ::: 0 1 2
env_parallel -k --env myarray -S server \
  echo '${myarray[{}]}' ::: 0 1 2

نصب (Installation)

این خط را در فایل $HOME/.profile قرار دهید:

source env_parallel.pdksh

برای مثال با اجرای:

echo 'source env_parallel.pdksh' >> $HOME/.profile

کاربردهای پشتیبانی‌شده (Supported use)

گزینه --env برای صادر کردن متغیر، نام مستعار، تابع یا آرایه با نام مشخص پشتیبانی می‌شود. می‌توان چندین گزینه --env را مشخص کرد.

گزینه --session پشتیبانی می‌شود.

نام‌های مستعار (aliases)
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
توابع (functions)
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
متغیرها (variables)
myvar=variables;
env_parallel echo "\$myvar" ::: work;
env_parallel -S server echo "\$myvar" ::: work;
env_parallel --env myvar echo "\$myvar" ::: work;
env_parallel --env myvar -S server echo "\$myvar" ::: work
آرایه‌ها (arrays)
myarray=(arrays work, too);
env_parallel -k echo "\${myarray[{}]}" ::: 0 1 2;
env_parallel -k -S server echo "\${myarray[{}]}" ::: 0 1 2;
env_parallel -k --env myarray echo "\${myarray[{}]}" ::: 0 1 2;
env_parallel -k --env myarray -S server \
  echo "\${myarray[{}]}" ::: 0 1 2

نصب (Installation)

این خط را در فایل $HOME/.profile قرار دهید:

. env_parallel.sh

برای مثال با اجرای:

echo '. env_parallel.sh' >> $HOME/.profile

کاربردهای پشتیبانی‌شده (Supported use)

گزینه --env برای صادر کردن متغیر یا نام مستعار با نام مشخص پشتیبانی می‌شود. می‌توان چندین گزینه --env را مشخص کرد.

گزینه --session پشتیبانی می‌شود.

نام‌های مستعار (aliases)
sh از نام‌های مستعار پشتیبانی نمی‌کند.
توابع (functions)
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
متغیرها (variables)
myvar=variables
env_parallel echo '$myvar' ::: work
env_parallel -S server echo '$myvar' ::: work
env_parallel --env myvar echo '$myvar' ::: work
env_parallel --env myvar -S server echo '$myvar' ::: work
آرایه‌ها (arrays)
sh از آرایه‌ها پشتیبانی نمی‌کند.

ابزار env_parallel برای tcsh باعث اختلال در عملکرد $PARALLEL می‌شود، بنابراین از $PARALLEL استفاده نکنید.

نصب (Installation)

این خط را در فایل $HOME/.tcshrc قرار دهید:

source `which env_parallel.tcsh`

برای مثال با اجرای:

echo 'source `which env_parallel.tcsh`' >> $HOME/.tcshrc

کاربردهای پشتیبانی‌شده (Supported use)

گزینه --env برای صادر کردن متغیر، نام مستعار یا آرایه با نام مشخص پشتیبانی می‌شود. می‌توان چندین گزینه --env را مشخص کرد.

نام‌های مستعار (aliases)
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
توابع (functions)
توسط tcsh پشتیبانی نمی‌شود.
متغیرها (variables)
set myvar=variables
env_parallel echo '$myvar' ::: work
env_parallel -S server echo '$myvar' ::: work
env_parallel --env myvar echo '$myvar' ::: work
env_parallel --env myvar -S server echo '$myvar' ::: work
آرایه‌های بدون کاراکترهای خاص (arrays with no special chars)
set myarray=(arrays work, too)
env_parallel -k echo \$'{myarray[{}]}' ::: 1 2 3
env_parallel -k -S server echo \$'{myarray[{}]}' ::: 1 2 3
env_parallel -k --env myarray echo \$'{myarray[{}]}' ::: 1 2 3
env_parallel -k --env myarray -S server \
  echo \$'{myarray[{}]}' ::: 1 2 3

نصب (Installation)

این خط را در فایل $HOME/.zshrc قرار دهید:

. env_parallel.zsh

برای مثال با اجرای:

echo '. env_parallel.zsh' >> $HOME/.zshenv

کاربردهای پشتیبانی‌شده (Supported use)

گزینه --env برای صادر کردن متغیر، نام مستعار، تابع یا آرایه با نام مشخص پشتیبانی می‌شود. می‌توان چندین گزینه --env را مشخص کرد.

گزینه --session پشتیبانی می‌شود.

نام‌های مستعار (aliases)
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
alias multiline='echo multiline
  echo aliases'
env_parallel multiline ::: work
env_parallel -S server multiline ::: work
env_parallel --env multiline multiline ::: work
env_parallel --env multiline -S server multiline ::: work
توابع (functions)
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
متغیرها (variables)
myvar=variables
env_parallel echo '$myvar' ::: work
env_parallel -S server echo '$myvar' ::: work
env_parallel --env myvar echo '$myvar' ::: work
env_parallel --env myvar -S server echo '$myvar' ::: work
آرایه‌ها (arrays)
myarray=(arrays work, too)
env_parallel -k echo '${myarray[{}]}' ::: 1 2 3
env_parallel -k -S server echo '${myarray[{}]}' ::: 1 2 3
env_parallel -k --env myarray echo '${myarray[{}]}' ::: 1 2 3
env_parallel -k --env myarray -S server \
  echo '${myarray[{}]}' ::: 1 2 3

مشابه با GNU parallel.

هنگام استفاده از GNU env_parallel برای مقالات و انتشارات علمی، لطفاً به منبع زیر ارجاع دهید:

O. Tange (2018): GNU Parallel 2018, March 2018, ISBN 9781387509881, DOI: 10.5281/zenodo.1146014.

این کار به تأمین مالی توسعه بیشتر پروژه کمک می‌کند و برای شما هزینه‌ای نخواهد داشت. در صورتی که مبلغ ۱۰٬۰۰۰ یورو بپردازید، می‌توانید بدون ذکر منبع از GNU Parallel استفاده کنید.

حق نشر (C) 2007-10-18 Ole Tange, http://ole.tange.dk

حق نشر (C) 2008-2010 Ole Tange, http://ole.tange.dk

حق نشر (C) 2010-2026 Ole Tange, http://ole.tange.dk و بنیاد نرم‌افزار آزاد (Free Software Foundation, Inc.)

این برنامه یک نرم‌افزار آزاد است؛ شما می‌توانید آن را تحت شرایط مجوز عمومی همگانی گنو (GNU GPL) همان‌طور که توسط بنیاد نرم‌افزارهای آزاد منتشر شده است، چه نسخه ۳ مجوز یا (به انتخاب خودتان) هر نسخه بعدی، بازتوزیع کرده یا تغییر دهید.

این برنامه به این امید توزیع شده است که مفید واقع شود، اما بدون هیچ‌گونه ضمانتی؛ حتی بدون ضمانت ضمنی قابل فروش بودن یا مناسب بودن برای یک هدف خاص. برای جزئیات بیشتر به مجوز عمومی همگانی گنو مراجعه کنید.

شما باید همراه با این برنامه یک نسخه از مجوز عمومی همگانی گنو را دریافت کرده باشید. در غیر این صورت، به http://www.gnu.org/licenses مراجعه کنید.

اجازه کپی، توزیع و/یا تغییر این سند تحت شرایط مجوز مستندات آزاد گنو (GNU FDL)، نسخه ۱.۳ یا هر نسخه بعدی منتشر شده توسط بنیاد نرم‌افزار آزاد، بدون بخش‌های تغییرناپذیر، بدون متون روی جلد و بدون متون پشت جلد داده می‌شود. یک نسخه از این مجوز در فایل LICENSES/GFDL-1.3-or-later.txt گنجانده شده است.

شما آزادید:

برای همرسانی (to Share)
اثر را کپی، توزیع و منتقل کنید
برای بازآفرینی (to Remix)
اثر را تطبیق داده و تغییر دهید

تحت شرایط زیر:

انتساب
باید اثر را به شیوه‌ای که توسط نویسنده یا اعطاکننده مجوز مشخص شده است منتسب کنید (اما نه به هیچ شیوه‌ای که نشان دهد آنها شما یا استفاده شما از اثر را تأیید می‌کنند).
اشتراک یکسان (Share Alike)
اگر در این اثر تغییری ایجاد کنید، آن را متحول سازید، یا بر پایه آن اثری بسازید، تنها می‌توانید اثر حاصل را تحت همان مجوز، مجوزی مشابه یا سازگار با آن توزیع کنید.

با این تفهیم که:

صرف‌نظر
در صورت کسب اجازه از دارنده حق نشر، می‌توان از هر یک از شرایط فوق صرف‌نظر کرد.
مالکیت عمومی (Public Domain)
در مواردی که اثر یا هر یک از عناصر آن بر اساس قوانین حاکم در مالکیت عمومی قرار داشته باشد، این وضعیت به هیچ وجه تحت تأثیر مجوز قرار نمی‌گیرد.
سایر حقوق (Other Rights)
حقوق زیر به هیچ وجه تحت تأثیر این مجوز قرار نمی‌گیرند:
  • حقوق معامله منصفانه یا استفاده منصفانه شما، یا سایر استثناها و محدودیت‌های قابل اعمال در حق نشر؛
  • حقوق معنوی نویسنده؛
  • حقوقی که سایر اشخاص ممکن است در خود اثر یا در نحوه استفاده از اثر داشته باشند، مانند حقوق تبلیغات یا حریم خصوصی.
اعلامیه
برای هرگونه استفاده مجدد یا توزیع، باید شرایط مجوز این اثر را برای دیگران شفاف سازید.

یک نسخه از متن کامل مجوز در فایل LICENCES/CC-BY-SA-4.0.txt گنجانده شده است.

دستور env_parallel از GNU parallel استفاده می‌کند.

parallel(1), ash(1), bash(1), csh(1), dash(1), fish(1), ksh(1), pdksh(1) tcsh(1), zsh(1).

2026-07-25 20260722