在shell脚本中使用exec“ $ @”执行新的tmux会话

问题描述 投票:0回答:1

我只有通过SSH连接到远程设备的shell(sh,不是bash)登录。脚本以exec "$@"结尾,据我所知,它以字符串形式传递所有参数。现在,我想在新的tmux会话中执行最后一条命令,以便在连接断开的情况下继续执行该程序。这是一个机器人项目,因此我假设连接部分中断。

如何将其包装到将在tmux中运行exec "$@"的命令中?

我已经尝试过:tmux new "exec \"$@\""tmux new -s session send-keys "exec \"$@\""以及仅使用"exec $@"

的两个版本

但是,在shellchecker或我的草稿.sh文件中似乎没有任何作用。我将非常感谢您的帮助。

bash shell sh tmux
1个回答
1
投票

尝试:

exec tmux new -- "$@"

如果不起作用,您可以尝试类似的操作:

exec tmux new -- sleep 10000

并尝试附加以确保正在运行tmux(例如,脚本可以找到tmux)。

[sh -x可能对查看实际运行的内容也很有用。

还请记住,如果已经启动了tmux,则内部环境可能与脚本中的环境不同。

© www.soinside.com 2019 - 2024. All rights reserved.