如何使用shell命令运行tmux

2lpgd968  于 2023-04-21  发布在  Shell
关注(0)|答案(3)|浏览(365)

我想用shell命令运行tmux
我尝试:tmux new-session -d -s foo 'echo intmux'(我想稍后在bash脚本中使用它)
但它不起作用。我希望:
1)Tmux打开新窗口(如tmux新)
2)命令echo intmux将被调用

tzdcorbm

tzdcorbm1#

1)Tmux打开新窗口(如tmux新)
您不会看到新会话,因为您使用-d(detached)标志创建了它。
你想要的(执行一个命令并打开一个shell)可以很容易地实现:
tmux new -s foo 'echo intmux; $SHELL'
另一个绑定到特定(bash)shell的棘手选项:

tmux new-session -s foo 'bash --rcfile <(echo ". ~/.bashrc; echo intmux")'

这允许保留默认行为(阅读. ~/.bashrc)并传递任意命令。

vx6bjr1n

vx6bjr1n2#

我发现了另一个选择:
tmux new-session $0 \; send-keys "echo intmux" Enter
(而不是$0,可以只有bash
上面的优点是命令通常存储在shell历史中。

mzsu5hc0

mzsu5hc03#

你可以跑

tmux new-session '-s foo' \; neww '-t 2 -n echo' mc

但这会在运行您的命令的新会话中生成另一个窗口,因此您可能希望关闭第一个窗口

tmux new-session '-s foo' \; neww '-n echo' mc \; kill-window '-t 1'

相关问题