হার্ডস্ট্যাটাসে স্ক্রিনের সেশন নামটি কীভাবে অন্তর্ভুক্ত করবেন?


17

আমি বিভিন্ন প্রকল্পের জন্য বিভিন্ন স্ক্রিন সেশন ব্যবহার করি। পর্দার মতো শুরু হচ্ছে screen -S project1। এখন, আমি হার্ডস্ট্যাটাস লাইনে 'প্রজেক্ট 1' উল্লেখ করতে চাই।

সেশন নাম এনভায়রনমেন্ট ভেরিয়েবল শূকরের খোঁয়াড় থেকে প্রাপ্ত করা সম্ভব: STY=13539.project1
তবে কীভাবে এটি পর্দায় পাবেন? আমি ব্যাকটিক কমান্ড এবং% hard হার্ডস্ট্যাটাসে চেষ্টা করেছি, তবে আমি এটি সঠিকভাবে পেয়েছি বলে মনে হচ্ছে না।

আমি কি করেছিলাম:

.screenrc:

hardstatus string '%H:%`'
backtick 0 30 30 echo $STY

ভাগ্য নেই, খালি% `।

backtick 0 30 30 sessionname

এখনও ভাগ্য নেই, সেশন নাম: পাওয়া যায় নি

উত্তর:


18

আপনি এই স্ট্রিংটি অন্তর্ভুক্ত করতে পারেন (অতিরিক্ত তথ্যের সাথে, চাইলে) $PS1:

\[\e]0;$STY\007

ভেরিয়েবলের মূল্যায়ন বিলম্ব করতে একক উদ্ধৃতিতে inside তারপরে এটি আপনার যুক্ত করুন ~/.screenrc:

hardstatus string '%H:%h'

দুর্ভাগ্যবশত, screenসেট করেনি $STYকমান্ড এটির জন্য spawns এর পরিবেশে backtickবৈশিষ্ট্য।

উপরের একটিটির পরিবর্তে অন্য একটি বিকল্প:

hardstatus string '%H:%`'
backtick 0 30 30 sh -c 'screen -ls | grep --color=no -o "$PPID[^[:space:]]*"'

এটির সুবিধাটি হ'ল এটি sessionnameকমান্ডটি ব্যবহার করে করা পরিবর্তনগুলি অনুসরণ করে । প্রথম বিকল্পটি না।

সম্পাদনা:

থেকে এখানে :

যেহেতু screen STY এখনও সেট করা হয়নি যখন স্ক্রীন উত্স। স্ক্রিন সিআরসি থাকে, আপনি আপনার .স্ক্রিনসিআরটিতে এই কৌশলটি ব্যবহার করতে পারেন:

    screen 
    screen $SHELL -c 'screen -X caption always "$STY"' 

অর্থাৎ প্রথম উইন্ডোতে একটি স্ক্রিন কমান্ড প্রেরণ করুন।


1
যে সমাধানটি দিয়ে শুরু হয় backtick: (1.) backtickএকটি বাশ অন্তর্নির্মিত? একটি gnu- স্ক্রিন কমান্ড? একটি বাইনারি নির্বাহযোগ্য? ম্যান পেজ আছে কি? (২) আমি জানি যে এটি কাজ করে কারণ আমি এটি চেষ্টা করেছি কিন্তু যখন আপনি gnu- স্ক্রিন .screenrcসিনট্যাক্সের hardstatusকমান্ডের জন্য একটি লাইন প্রয়োজন বলে মনে হয় তখন এটি কার্যকর করার জন্য আপনি দুটি লাইন কমান্ড কিভাবে পাবেন ? (৩) সেশন নামের পরে কিছু পাঠ্য সংযোজন করার অনুমতি দিতে আমি আপনার আদেশটি কীভাবে পরিবর্তন করব?
ট্রেভর বয়েড স্মিথ

@ ট্রেভরবয়েডস্মিথ: backtickএকটি screenআদেশ। ম্যান পেজে এটির জন্য অনুসন্ধান করুন screen। আপনি যা জিজ্ঞাসা করছেন সে সম্পর্কে আপনি যদি নতুন প্রশ্ন পোস্ট করেন তবে সবচেয়ে ভাল হতে পারে। আমি মনে করি না হার্ডস্ট্যাটাস আউটপুট অন স্ক্রিনে দুটি লাইন দখল করতে পারে। আপনি আমার উদাহরণে যা করছেন তা করতে sedবা awkপরিবর্তে grepআপনি grepকিছু অতিরিক্ত পাঠ্য সংযোজন করতে পারেন।
পরবর্তী বিজ্ঞপ্তি না দেওয়া পর্যন্ত বিরতি দেওয়া হয়েছে।

যখন আমি "দুটি লাইন" বললাম তখন আমি যা বলতে চাইছিলাম তা পুনরায় চালু করতে দিন, আমি হার্ডস্ট্যাটাসের জন্য একটি দুটি লাইন প্রদর্শন চাই না। আমি %` এবং backtickপৃথক লাইনে থাকা সত্ত্বেও আমি বিভ্রান্ত হয়ে পড়েছিলাম ... তারা সম্পর্কিত বলে মনে হয়নি তবে এখন আমি ডকুমেন্টেশন পড়ার জন্যbacktick দেখতে পাচ্ছি যে দুটিই সম্পর্কিত / প্রয়োজনীয় / বৈধ-সিনট্যাক্স (যদিও বিস্ময়কর সিন্ট্যাক্স আইএমও নয়) are
ট্রেভর বয়েড স্মিথ

3

আমার জন্য %Sএটি হার্ডস্ট্যাটাস withোকানোর সাথে সহজেই কাজ করে ।

এমডব্লিউই (.স্ক্রিনসিআরসি):

hardstatus on
hardstatus alwayslastline
hardstatus string "%S"

যাইহোক, এটি আইডি ছাড়াই সেশনের নাম প্রদর্শন করে (লাইক ${STY#*.}); আপনার উদাহরণে: project1

( সম্পূর্ণতার জন্য এখানে এবং এখানে অন্যান্য প্রশ্নের একই উত্তর )।


2
এফওয়াইআই, দ্য "% এস" gnu- স্ক্রিনের নতুন সংস্করণগুলিতে কাজ করে (আমার জন্য ফেডোরা 21 সংস্করণে কাজ করে) তবে পুরানো সংস্করণ নয় (আমার জন্য CentOS 6 সংস্করণে কাজ করে না)।
ট্রেভর বয়েড স্মিথ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.