انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => انجمن عمومی => نویسنده: 🇬🇧بریتانیای کبیر🇬🇧 در 17 اسفند 1401، 09:25 ب‌ظ

عنوان: چرا با وجود دادن دستور set -o ignoreeof باز هم باز چند بار زدن ctrl + d
ارسال شده توسط: 🇬🇧بریتانیای کبیر🇬🇧 در 17 اسفند 1401، 09:25 ب‌ظ
چرا با وجود دادن دستور set -o ignoreeof باز هم با چند بار زدن ctrl + d سیستم logout می‌شود؟
عنوان: پاسخ : چرا با وجود دادن دستور set -o ignoreeof باز هم باز چند بار زدن ctrl + d
ارسال شده توسط: Dragon- در 25 اسفند 1401، 05:44 ق‌ظ
وقتی این دستور رو اجرا می‌کنید، متغیر محیطی IGNOREEOF تعریف میشه و مقدار اون برابر 10 قرار می‌گیره.
این متغیر مشخص می‌کنه که bash چند بار کاراکتر EOF رو نادیده بگیره.

وقتی set -o ignoreeof رو می‌زنید، EOF کاراکتر ۱۰ بار نادیده گرفته میشه؛ بار یازدهم باعث میشه bash بسته بشه.
اگه بین EOF‌‌ها یه چیز دیگه بزنید، تعداد کاراکتر‌های EOF دریافت شده صفر میشه.
مثلا اگه set -o ignoreeof رو بزنید و بعد ۹ بار ctrl + d رو فشار بدید و بعد مثلا ls رو اجرا کنید، باید دوباره ۱۱ بار ctrl + d رو بزنید تا از bash خارج بشید. اون ۹ تای قبل صفر میشه.