Bash 脚本打开 tmux 但看不到用户名

Bash 脚本打开 tmux 但看不到用户名

我有一个 bash 脚本,它使用一些监视工具启动 tmux 会话,并有一个 cronjob 在启动时运行它;但是,我看不到命令​​的常用前缀,也无法使用任何箭头键。

在此输入图像描述

通常它应该是这样的:

在此输入图像描述

(实际脚本)

#!/bin/sh

cd /home/ubuntu/

tmux start-server

tmux new-session -d -s "0" bash
tmux selectp -t 1
tmux splitw -h -p 50
tmux selectp -t 2
tmux splitw -v -p 50
tmux selectp -t 3
tmux send-keys "htop" C-m

# Select pane 1
tmux selectp -t 0
tmux attach-session -t "0"
tmux detach

什么地方出了错??

答案1

看起来你的 cron 作业启动了 sh 或 dash 而不是 bash(Ubuntu 区分了 bash 和 sh...我不知道情况是否仍然如此)。ps ux当 cron-tmux 运行时,您应该能够使用 a 检查这一点。

如果真正的 bash 已启动,也许它没有source ~/.bashrc:尝试/bin/bash -i,或者在脚本中手动获取它。

此外,在 cron 作业中,环境通常很小。输入env您的 tmux 会话以查看可用的内容,这可以给您提供线索。

如果你的 cron 以 root 身份运行(你没有提到,所以我假设为用户),他的 bashrc 可能很小或不存在,因此是丑陋的 cmdline。

相关内容