Entendi, meu script getName
deve echo -n
, mas é claro que há o assunto da atualização.
Eu quero que o nome de um programa (uma string, não o nome real) apareça na barra de status do tmux se esse programa estiver sendo executado.
Isso é o que eu tenho no meu set -g status-right
:
#{?#{!=:#(getPid p),0},program,}
Onde:
#(getPid p)
é o script que estou executando, que retorna 0 se o programa não está sendo executado ou não 0 (um PID ou wc -l), caso contrário #{!=:#(getPid p),program,}
deve retornar 1 ou 0 dependendo do resultado da etapa anterior #{?#{!=:#(getPid p),0},program,}
deve imprimir "programa" se a etapa anterior retornar 1 Mas não consigo nem imprimir 1 ou 0 com apenas o primeiro passo #{!=:#(getPid p),0}
.
Não tenho certeza se isso é suportado, talvez apenas #{}
flags sejam suportados em condicionais, não #()
EDITAR
Estou com #(getPid p | awk '$0 != 0 {print \"program\"}')
, o que parece mais simples, mas ainda não é possível.
EDITAR
Outra abordagem que também funciona na linha de comando: if [ $(getPid b) != 0 ]; then echo program; fi
, ainda nada na barra de status.
EDITAR
Eu decidi fazer meu script ecoar o nome do programa, então tudo que eu preciso é #(getPid p)
, mas ainda não vou. Eu acho que o problema é provavelmente em outro lugar. Esta é a linha completa:
set -g status-right "#(getName p) |#[fg=colour239,bg=colour236,nobold,nounderscore,noitalics]#[fg=colour253,bg=colour239] %Y-%m-%d | %H:%M #[fg=colour103,bg=colour239,nobold,nounderscore,noitalics]#[fg=colour236,bg=colour103]"
Entendi, meu script getName
deve echo -n
, mas é claro que há o assunto da atualização.
Tags tmux