सत्र का नाम tmux चर में संग्रहीत है #S
, इसे टर्मिनल में एक्सेस करने के लिए , आप कर सकते हैं
tmux display-message -p "#S"
यदि आप इसे उपयोग करना चाहते हैं .tmux.conf
, तो यह बस है #S
। ध्यान दें कि -p
विकल्प संदेश को stdout पर प्रिंट करेगा, अन्यथा संदेश tmux स्टेटस लाइन में प्रदर्शित होता है ।
यदि उपरोक्त कमांड को एक सत्र के अंदर कहा जाता है, तो यह सत्र का नाम लौटाता है। यदि इसे किसी भी सत्र के बाहर बुलाया जाता है, तो यह अभी भी अंतिम चल रहे सत्र का नाम देता है। मुझे यह पता लगाने के लिए tmux कमांड नहीं मिली , कि कोई व्यक्ति सत्र के अंदर है या नहीं, इसलिए मुझे इस काम के साथ आना पड़ा:
tmux list-sessions | sed -n '/(attached)/s/:.*//p'
tmux list-sessions
सभी सत्र दिखाता है, यदि कोई संलग्न है, तो यह (attached)
अंत में दिखाता है । सीड के साथ हम सभी आउटपुट (विकल्प -n
) को दबा देते हैं, सिवाय इसके कि जहाँ हम कीवर्ड पाते हैं (attached)
, इस लाइन पर हम ए के बाद एवरीथिंग को काट देते हैं :
, जो हमें सत्र के नाम के साथ छोड़ देता है। यह मेरे लिए एक सत्र के अंदर और बाहर काम करता है, जैसा कि विरोध किया गया tmux display-message -p "#S"
।
बेशक यह तभी काम करता है जब सत्र के नाम पर कोई :
और नहीं (attached)
है।
जैसा कि क्रिस जॉन्सन द्वारा टिप्पणी की गई है , यह जांचने का एक तरीका है कि कोई tmux सत्र के अंदर है या नहीं, यह देखने के लिए कि क्या उसका पर्यावरण चर सेट है:
[[ -n "${TMUX+set}" ]] && tmux display-message -p "#S"
tmux
सत्र है और दूसरे में मैंtmux
सत्र के बाहर हूं । जब मैं दोनों को कमांड में टाइप करता हूंtmux display-message -p "#S"
, तो समान परिणाम प्रिंट होता है और दोनों कमांड का रिटर्न वैल्यू एक समान होता है।