এবং " $TERM
" বলবেন না - এটি সর্বদা xterm
।
কোনও bash
স্ক্রিপ্ট কীভাবে বলতে পারে যে এটি কোন টার্মিনালটিতে চলছে, বিশেষত এটি আইটার্ম, টার্মিনাল.এপ, বা আসলে একটি এক্সটার্ম কিনা?
আমি জিজ্ঞাসা করি কারণ reset
টার্মিনাল.এপ এবং আইটির্ম 2 এর বাক্সটি বাইরে চলে না। iTerm2, তবে একটি টার্মিনাল রিসেট ( \x1b]50;ClearScrollback\x07
) করার জন্য একটি পালানোর ক্রমটি সনাক্ত করে এবং আমি এটি সনাক্ত করতে পারলে, আমি reset
একটি উপকরণ দিয়ে সঠিক কাজটি করে ওভাররাইড করতে পারি । এএএএএএসিকিটি, টার্মিনাল.এ্যাপে পুনরায় সেট করার অনুক্রম নেই এবং লোকেরা হ্যাক করার জন্য হাস্যকর টম-হ্যাকারি অবলম্বন করে ।
এখানে আমার শেষ লক্ষ্যটি হ'ল reset
আমি ওএস এক্স বা লিনাক্সে কাজ করছি কিনা, এসএসএইচ এর মাধ্যমে স্থানীয়ভাবে বা দূরবর্তীভাবে কাজ করছি কিনা work (আমি কোনটি মনে করার চেষ্টা করতে চাই না, এবং এটি reset && command-that-outputs-a-bunch
কাজ করা এবং আপ-এন্ট্রি করা কাজটি কার্যকর।) টার্মিনাল.এপ এবং আইটির্ম reset
সঠিকভাবে প্রয়োগ না করে এই পরিকল্পনায় একটি রেঞ্চ ফেলছে ।
এর অর্থ হ'ল সহজভাবে ওভাররাইড reset
করা মোটেও তা নয়: যদি আমি লিনাক্স মেশিনে থাকি gnome-terminal
তবে সঠিক পালানোর ক্রমটি প্রেরণ করতে আমি আইটার্ম ব্যবহার করছি কিনা তা জানতে হবে ।
ioctl
টার্মিনালটি আসলে কী তা জিজ্ঞাসা করার কোনও উপায় আছে (আমার যদি একটি প্রয়োজনও হয় ) ?
এই প্রশ্নের উদ্দেশ্যগুলির জন্য, রিসেটের স্ক্রিনটি সাফ করা উচিত, কার্সারটি পুনরায় সেট করা উচিত এবং স্ক্রোলব্যাক বাফারটি মোছা উচিত।
reset
আমার আঙ্গুলগুলি যা জানে তাই আমি কেবলমাত্র এটিই এখন এবং তারপরে পরিষ্কার করতে সক্ষম হতে চাই fe
reset
কমান্ডটি টার্মিনাল এমুলেটরের স্ক্রোল-ব্যাক বিষয়বস্তু সাফ করার প্রত্যাশা করছেন , তবে এটি করার নিশ্চয়তা নেই, কারণ স্ক্রোল-ব্যাক একটি টার্মিনাল এমুলেটর-নির্দিষ্ট বৈশিষ্ট্য, আসলেই নয় একটি টার্মিনাল অংশ। যাইহোক, টার্মিনালটি স্ক্রোল-ব্যাকটি মুছতে ইডি (ডিসপ্লেতে মুছে ফেলুন) এস্কেপ ক্রমের একটি বর্ধনকে সমর্থন করে ESC [ 3 J
। আপনি স্ক্রিনটি সাফ করতে পারেন, তারপরে এটি ব্যবহার করুনreset && printf '\e[3J’
xterm
(এর মাধ্যমে TERM=xterm
) হিসাবে ঘোষণা করেন তবে আমি আশা করব যে আপনি এক্সটার্মের একটি সুপারসেটকে অনুকরণ করবেন যা পুনরায় সেট করার ক্ষেত্রে তার স্ক্রোলব্যাক সাফ করবে। (ঠিক যেমন আপনি "নীল" এর জন্য পালানোর অনুক্রম পাঠিয়েছেন, আপনি নীল আশা করতে পারেন।) মঞ্জুর, আমার এক্সটার্ম আমাকে তা বলে Erase is backspace.
, যা আমি আর কৃতজ্ঞ না; এটা ঠিক বিরক্তিকর।
Terminal.app
সেটিংস, টার্মিনাল ট্যাব এবং 0 এ স্ক্রলব্যাক লাইন সেট করেন তবে কী হবে ? এটি কি বর্তমান লাইনের উপরে যে কোনও এবং সমস্ত পাঠ্যকে পর্দার উপরের অংশে উপরে অক্ষম করে? আমি জানি, এটি শট হিসাবে আপনি ঠিক যা চেয়েছিলেন তা নয়।