ENV(1) دستورات کاربر ENV(1)

env - اجرای یک برنامه در یک محیط تغییریافته یا چاپ متغیرهای محیط

env [گزینه‌ها]... [-] [نام=مقدار]... [دستور [آرگومان‌ها]...]

تنظیم هر نام به مقدار در محیط و اجرای دستور.

آرگومان‌های اجباری برای گزینه‌های طولانی، برای گزینه‌های کوتاه نیز اجباری هستند.

ارسال ARG به‌عنوان آرگومان صفرم دستور
شروع با یک محیط خالی
-0, --null
خاتمه دادن به هر خط خروجی با نویسه NUL به جای خط جدید (newline)
حذف متغیر مشخص‌شده از محیط
تغییر دایرکتوری کاری به DIR
پردازش و تفکیک S به آرگومان‌های مجزا؛ برای ارسال چندین آرگومان در خطوط شِبنگ (shebang) استفاده می‌شود
مسدود کردن تحویل سیگنال(های) SIG به دستور
بازنشانی نحوه مدیریت سیگنال(های) SIG به حالت پیش‌فرض
تنظیم نحوه مدیریت سیگنال(های) SIG برای عدم انجام هیچ عملیاتی (نادیده‌گرفتن)
فهرست کردن وضعیت مدیریت سیگنال‌های غیر پیش‌فرض در خطای استاندارد
چاپ اطلاعات تفصیلی و اشکال‌زدایی برای هر مرحله از پردازش
نمایش این راهنما و خروج
نمایش اطلاعات نسخه و خروج

درج یک - به‌تنهایی به‌معنای -i است. اگر هیچ دستوری تعیین نشود، محیط حاصل چاپ می‌شود.

مقدار SIG می‌تواند نام یک سیگنال مانند 'PIPE' یا شماره سیگنال مانند '13' باشد. در صورت مشخص نشدن SIG، تمامی سیگنال‌های شناخته‌شده لحاظ می‌شوند. چندین سیگنال را می‌توان با کاما از یکدیگر جدا کرد. یک آرگومان SIG خالی هیچ عملیاتی انجام نمی‌دهد (no-op).

125
در صورتی که خود دستور env با شکست مواجه شود
126
در صورتی که دستور مشخص‌شده پیدا شود اما قابل فراخوانی نباشد
127
در صورتی که دستور مشخص‌شده یافت نشود
-
در غیر این صورت، وضعیت خروج خود دستور مشخص‌شده

گزینه -S امکان مشخص کردن چندین آرگومان را در یک اسکریپت فراهم می‌کند. اجرای اسکریپتی با نام 1.pl که شامل خط آغازین زیر باشد:

#!/usr/bin/env -S perl -w -T
...

دستور زیر را اجرا خواهد کرد:

perl -w -T 1.pl

بدون گزینه '-S' اسکریپت احتمالاً با خطای زیر با شکست مواجه می‌شود:

/usr/bin/env: 'perl -w -T': No such file or directory

برای جزئیات بیشتر، مستندات کامل را ببینید.

صفحه exec(3p) در استاندارد POSIX بیان می‌کند:

«بسیاری از برنامه‌های کاربردی موجود به اشتباه فرض می‌کنند که با سیگنال‌های خاصی که بر روی عمل پیش‌فرض تنظیم شده‌اند و/یا مسدود نشده‌اند آغاز به کار می‌کنند.... بنابراین، بهتر است بدون دلیلی مشخص، سیگنال‌ها را در حین فراخوانی exec مسدود نکرده یا نادیده نگیرید، و به‌ویژه نباید سیگنال‌ها را در سراسر فراخوانی‌های exec برنامه‌های دلخواه (که همکاری نزدیکی با یکدیگر ندارند) مسدود نمایید.»

نوشته‌شده توسط Richard Mlynarik، David MacKenzie، و Assaf Gordon.

گزارش اشکالات به: bug-coreutils@gnu.org
صفحه اصلی GNU coreutils: https://www.gnu.org/software/coreutils
راهنمای کلی استفاده از نرم‌افزارهای گنو: https://www.gnu.org/gethelp
گزارش هرگونه اشکال در ترجمه به: https://translationproject.org/team

حق نشر © 2026 Free Software Foundation, Inc.
مجوز GPLv3+: گنو GPL نسخه ۳ یا بالاتر https://gnu.org/licenses/gpl.html.
این نرم‌افزار آزاد است: شما می‌توانید آن را تغییر داده و دوباره توزیع کنید. هیچ ضمانتی وجود ندارد، تا حدی که قانون مجاز می‌داند.

sigaction(2), sigprocmask(2), signal(7)

مستندات کامل در https://www.gnu.org/software/coreutils/env
یا در دسترس به‌صورت محلی از طریق: info '(coreutils) env invocation'

July 2026 GNU coreutils 9.11