exitনিজেকে টার্মিনাল থেকে বেরিয়ে আসার জন্য আমি বিল্টিনের কার্যকারিতাটি প্রতিস্থাপন করতে একটি ফাংশন লেখার চেষ্টা করছি ।
আমি SHLVLপরিবেশের পরিবর্তনশীলটি ব্যবহার করার চেষ্টা করেছি তবে সাব-শেলের মধ্যে এটি পরিবর্তন হবে বলে মনে হচ্ছে না:
$ echo $SHLVL
1
$ ( echo $SHLVL )
1
$ bash -c 'echo $SHLVL'
2
আমার কাজটি নিম্নরূপ:
exit () {
if [[ $SHLVL -eq 1 ]]; then
printf '%s\n' "Nice try!" >&2
else
command exit
fi
}
এটি আমাকে exitসাব-শেলগুলির মধ্যে ব্যবহারের অনুমতি দিবে না যদিও:
$ exit
Nice try!
$ (exit)
Nice try!
আমি সাবসিলে থাকি কি না তা সনাক্ত করার জন্য একটি ভাল পদ্ধতি কী?
(...)পিতামাতার প্রক্রিয়ার সমস্ত বৈশিষ্ট্য উত্তরাধিকার সূত্রে প্রাপ্ত হয়। প্রদত্ত উত্তরগুলি আপনার শেল স্তর নির্ধারণের জন্য আরও দৃ more় সমাধান।
BASH_SUBSHELLউত্তর (বিতর্কিত হলেও) প্রয়োগ করা হবে না।