সেশনটির নাম টিএমউক্স ভেরিয়েবেলে সংরক্ষণ করা হয় #S
, এটি একটি টার্মিনালে অ্যাক্সেস করতে, আপনি করতে পারেন
tmux display-message -p "#S"
আপনি যদি এটিতে ব্যবহার করতে চান তবে .tmux.conf
এটি সহজ #S
। নোট করুন -p
বিকল্পটি বার্তাটি স্টাডাউটে মুদ্রণ করবে, অন্যথায় বার্তাটি টিএমউक्स স্থিতি রেখায় প্রদর্শিত হবে ।
যদি উপরের কমান্ডটি একটি সেশনের অভ্যন্তরে ডাকা হয় তবে এটি সেশনের নামটি দেয়। যদি এটিকে কোনও সেশনের বাইরে ডাকা হয় তবে এটি এখনও চলমান শেষ অধিবেশনটির নাম দেয়। আমি সেশনের অভ্যন্তরে থাকি বা না থাকি কিনা তা পরীক্ষা করার জন্য আমি একটি টিএমউक्स কমান্ডটি খুঁজে পেলাম না , তাই আমাকে এই কাজটি সামনে আনতে হবে:
tmux list-sessions | sed -n '/(attached)/s/:.*//p'
tmux list-sessions
সমস্ত সেশন দেখায়, যদি একটি সংযুক্ত থাকে তবে (attached)
এটি শেষে দেখায় । সঙ্গে sed আমরা সবাই আউটপুট (বিকল্প দমন -n
যেখানে আমরা শব্দ খুঁজে ব্যতীত) (attached)
, এই লাইনে আমরা পরে everyhing দূরে কাটা :
অধিবেশন নামে, যা পাতার আমাদের। এটি আমার পক্ষে একটি সেশনের অভ্যন্তরে এবং বাইরে বিরোধিতা হিসাবে কাজ করে tmux display-message -p "#S"
।
অবশ্যই এটি কাজ করে যদি সেশনটির নামে :
এবং না থাকে and(attached)
ক্রিস জনসনের মন্তব্য অনুসারে , টিএমউक्स সেশনের অভ্যন্তরে কেউ রয়েছে কিনা তা যাচাই করার একটি উপায় হল এর পরিবেশ পরিবর্তনশীল সেট করা আছে কিনা তা দেখার জন্য:
[[ -n "${TMUX+set}" ]] && tmux display-message -p "#S"
tmux
সেশন রয়েছে এবং অন্যটিতে আমিtmux
সেশনের বাইরে । আমি যখন উভয় কমান্ড টাইপ করি তখনtmux display-message -p "#S"
একই ফলাফল মুদ্রিত হয় এবং উভয় কমান্ডের রিটার্ন মান একই হয়।