উত্তর:
সঙ্গে tmux 1.2 (এবং পরে), আপনি ব্যবহার করতে পারেন -p
বিকল্প display-message
আউটপুট একটি বার্তা stdout- এ (একটি সংযুক্ত ক্লায়েন্ট এটা প্রদর্শন করার পরিবর্তে) করুন:
tmux display-message -p '#S'
#S
সেশনের নাম হিসাবে ফর্ম্যাট করা হয়েছে ( status-left
ম্যান পৃষ্ঠায় বিকল্পের বিবরণ দেখুন )।
আমি অবাক হয়েছি যে, প্রায় 5 বছর পরেও, কেউই উল্লেখ করেনি যে এই উত্তরগুলির কোনওটিই পর্যাপ্ত নয়। যদিও উভয় উভয়ই সূক্ষ্মভাবে কাজ করে যতক্ষণ না বর্তমান টিটিওয়াই হোস্টের একমাত্র টিএমউक्स সেশনের সাথে সংযুক্ত থাকে, এই উত্তর দুটিই সমতল হয় যদি:
পূর্ববর্তী ক্ষেত্রে, উভয় উত্তর এখানে সংযুক্ত অধিবেশনটির নামটি ফিরিয়ে দেয় (বর্তমান টিটিটি অধিবেশন দ্বারা পরিচালিত হয় তা নির্বিশেষে)। পরবর্তী ক্ষেত্রে, ফলাফল সম্ভবত অনির্দিষ্ট হতে পারে বা একাধিক উত্তরের ফলস্বরূপ।
যথাযথ প্রশ্নটি হওয়া উচিত, "আমার বর্তমান টার্মিনাল অধিবেশনটি টিএমাক্স সেশনের সাথে সংযুক্ত টিএমএক্স সেশনের নাম কী?"
কারণ তিনি এই প্রশ্নের উত্তরের জন্য , কার্যকর করুন:
for s in $(tmux list-sessions -F '#{session_name}'); do
tmux list-panes -F '#{pane_tty} #{session_name}' -t "$s"
done | grep "$(tty)" | awk '{print $2}'
এটি tmux সেশনের সংখ্যা (সংযুক্ত বা অন্যথায়) নির্বিশেষে এবং বর্তমান টার্মিনাল অধিবেশনটি কোনও tmux সেশনের অংশ নয় কিনা তা নির্বিশেষে কাজ করে।
tmux list-panes -a -F '#{pane_tty} #{session_name}'
করতে পারেন। কীভাবে নতুন -a
তা নিশ্চিত নয় , তাই ওয়াইএমএমভি।
TMUX
চালানোর আগে পরিবেশের পরিবর্তনশীল যাচাইয়ের সাথে মিলিত হলে পদ্ধতি 1 কাজ করে tmux display-message -p '#S'
।
সম্প্রসারিত / সংশোধন টিম-মানুষের এর উত্তর
অনুযায়ী don_crissti এর মন্তব্য
উপর এই কেন grep -v
আশানুরূপ কাজ না? ।
টিম-পিপলসের উত্তরে "$ (tty)" কমান্ড
| গ্রেপ "$ (টিটিটি)" | |
প্রত্যাশার মতো সেই প্রসঙ্গে কাজ করবে না। এটি স্ট্রিংকে মূল্যায়ন করে না 'টিটিটি নয়'।
ভেরিয়েবলের পরিবর্তে এটি সমস্যার সমাধান করে।
TTY = $ (TTY)
...
| grep "$ tty" |
এছাড়াও, যখন কোনও টিএমউक्स সেশন উপস্থিত না থাকে, মূল কোডটি তৈরি করতে পারে
"/ tmp / tmux-1000 / default" তে কোনও সার্ভার চলছে না " ত্রুটি বার্তা।
অ্যাড করুন 2>/dev/null
এবং কোডটি ত্রুটি বার্তাটি প্রিন্ট না করে চলবে।
পরিবর্তিত কোডটি এই হিসাবে পড়ে:
tty=$(tty)
for s in $(tmux list-sessions -F '#{session_name}' 2>/dev/null); do
tmux list-panes -F '#{pane_tty} #{session_name}' -t "$s"
done | grep "$tty" | awk '{print $2}'