Execute o comando dentro de outro comando

1

Estou tentando gravar minha sessão do tmux. Eu tenho um alias record-session que executa o comando de ttygif ttyrec ~/ttygif/files/last-session . Tanto quanto eu entendo ttygif inicia nova instância de terminal e começa a gravá-lo. Normalmente eu tenho que fazer

$ record-session
$ tmux a
# Do something with tmux here
# C-b D
$ exit #to finish recording

Mas eu gostaria de torná-lo um pouco mais automático, porque eu não gosto de como ele é gravado toda vez que digito tmux a . Eu quero fazer um alias que iria começar a gravar e, em seguida, anexar a sessão do tmux. Eu tentei:

  • record-session ; tmux a
  • (record-session ; tmux a)
  • record-session & tmux a
  • record-session && tmux a
  • record-session | tmux a
  • (tmux a ; record-session)

Cada um sem sucesso. Cada um desses comandos inicia a gravação logo após eu fechar o tmux ou não gravá-lo.

Alguma ideia do que é o caminho certo para o fazer?

    
por Krzysztof Wende 19.08.2015 / 10:14

2 respostas

1

Eu encontrei uma solução. Parece que o ttygif permite que você use um comando inicial com a flag -e Então é o suficiente para fazer

ttyrec file_name -e "tmux a"

Ou no meu caso

record-session -e "tmux a -t my_session"
    
por 19.08.2015 / 10:50
1

Existem mais de uma solução aqui:

  • Use o plugin tmux-logging .

  • Use um .bash_profile para registrar a saída em um script .

  • Se você quiser usar record-session , você sempre pode usar o tmuxinator para configurar o ENV e executar os comandos.

Provavelmente, existem mais maneiras de fazer isso, mas a melhor maneira de usar o plugin é IMHO.

    
por 19.08.2015 / 10:42