OK, eu acho que eu tenho as peças que você precisa, mas vou deixar para você juntá-las em um todo coeso.
A variável de ambiente TMUX
informará se o processo atual está sendo executado no tmux ou não:
<~> $ echo $TMUX
/private/var/folders/1s/ff98nkc90mv7pfglffklcv8w0000gn/T/tmux-501/default,27570,8
O último valor (8) é o ID da sessão (que pode ou não ser também o nome da sessão). No exemplo acima, nosso ID de sessão é 8, mas não temos uma sessão chamada '8':
<~> $ tmux ls
0: 1 windows (created Sat Nov 23 21:17:45 2013) [80x23]
1: 1 windows (created Sat Nov 23 21:17:45 2013) [120x34]
bar: 2 windows (created Tue Nov 26 03:05:03 2013) [120x34] (attached)
blech: 1 windows (created Tue Nov 26 03:12:46 2013) [120x34] (attached)
Mas podemos obter essa informação do tmux usando a string de formato -F:
<~> $ tmux ls -F "#{session_name}: (#{session_id})"
0: ($0)
1: ($1)
bar: ($5)
blech: ($8)
Você pode usar essas informações para ver se está anexado ou não:
<~> $ tmux ls -F "#{session_id}: #{?session_attached,attached,not attached}"
$0: not attached
$1: not attached
$5: attached
$8: attached
Deixe-me saber se você precisa de ajuda para juntar tudo.