কিভাবে এবং কেন "এক্সিকিউট মিথ্যা" টার্মিনালটি বন্ধ করে?


8

আমি জানি যে এটি সম্ভবত একটি তুলনামূলক অর্থহীন প্রশ্ন, তবে কেন আমি exec falseটার্মিনালটি ঠিক যেমন বন্ধ করে exitদেয় তা সম্পর্কে আগ্রহী।

আমি এটিও জানতে চাই যে এটি টার্মিনালটি বন্ধ করার কোনও গ্রহণযোগ্য উপায় কিনা।


উত্তর:


10

exec falseকমান্ড সঞ্চালনের করে বর্তমান শেল প্রতিস্থাপন করা হয় false(এখানে না শেল builtin কিন্তু /bin/falseবা যাই হোক না কেন falseএক্সিকিউটেবল যে প্রথম আসে PATH) যা দ্রুত প্রস্থান করে। শেলটি যদি আপনার টার্মিনাল এমুলেটরটিতে চলমান শীর্ষতম প্রক্রিয়া ছিল তবে এর অভ্যন্তরে আর কোনও প্রক্রিয়া চলবে না যাতে টার্মিনাল এমুলেটর বন্ধ হয়ে যায়।

টার্মিনালটি বন্ধ করার জন্য এটি একটি গ্রহণযোগ্য বিকল্প উপায়, ঠিক যেমন অনেকগুলি অনুরূপ কমান্ড হবে:

exec true
exec sleep 0
exec echo
...

আরও দেখুন: একটি-এক্সিকিউট-কমান্ড-কর-কী করে


পার্শ্ব নোট হিসাবে, লিখিত কমান্ড সহ bashআহ্বান করার আগে নির্দিষ্ট সাফাই সম্পাদন করবে । সুতরাং যদি কেউ একই টার্মিনাল উইন্ডোতে কেবল নতুন শেলটিতে সঞ্চয় করতে এবং চালু করতে চায় তবে টাইপ করে কেউ এটি করতে পারে । exec.bash_history.bash_historyexec bash
ক্যাস্পারড

ঠিক আছে ধন্যবাদ আপনি আমার প্রশ্নের সঠিক উত্তর দিয়েছেন :)
ড্রাগনলভারলর্ড

এবং একটি ভাল প্রশ্ন! সুতরাং উভয় upvated! ;)
ফ্যাবি

@ জিলিয়াগ্র্রে execকল কমান্ডগুলি পাওয়া গেছে PATH, বিল্ট-ইনগুলি নয়। উদাহরণস্বরূপ, ত্রুটি exec [[ $USER = root ]]ফিরে আসবে bash: exec: [[: not found। ওপি-র ক্ষেত্রে, falseএটি বলা হয় /bin/false, এবং শেলটি অন্তর্নির্মিত নয়। অন্যথায়, ভাল উত্তর, সুতরাং +1। পার্শ্ব নোট হিসাবে, execকাট-অফ কমান্ডটি বাছাই করা যেতে পারে, উদাহরণস্বরূপ, যদি আপনার উদাহরণে এই তিনটি কমান্ড কোনও স্ক্রিপ্ট হিসাবে তৈরি করা হয়, তবে প্রথমে execআর কিছু পৌঁছাতে পারে না, কারণ execডান দিকের কমান্ডের সাথে স্ক্রিপ্ট দ্বারা ডাকা শেলটি প্রতিস্থাপন করা হবে would এর exec
সের্গেই কোলোডিয়াজনি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.