为什么我的终端以 $ 开头?

为什么我的终端以 $ 开头?

我有一个运行 shell 脚本的 crontab。该 shell 脚本包含创建 tmux 和启动一些命令的代码。

@reboot /home/netforce/scripts/script.sh > /dev/null

脚本内容如下:

#!/bin/bash
sess=erp

if [ "`tmux ls | grep $sess`" != "" ]  ; then

   echo "session $sess already running"
   exit 1
fi

echo "starting session"

tmux new-session -d -s erp
tmux rename-window 'server'
tmux send-keys 'supervise ~/svc/netforce' 'C-m'
sleep 2

一切正常,tmux 已创建并且软件正在运行。

但正在运行

$ ./run.py

它应该运行为

netforce@netforce-computer:~/netforce$ ./run.py

为什么我要按上述方式运行?它对于主运行命令来说运行正常,但是。我有多个使用 shell 脚本的窗口(例如用于打印的窗口)(但它不起作用)

当我手动运行时,script.sh它运行完美。

通过一些研究,我得知 bash 配置文件未加载。但我不知道如何使用我的 bash 环境(.bashrc?我想)启动它。

非常感谢任何建议。

更新

我更新的 crontab 是

SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

@reboot sleep 60 && /home/netforce/asus_scripts/start-erp.sh > /dev/null
#* */4 * * * /home/netforce/backup/backup_db.py

一些 python 文件可以运行,但有些由于 bash 而出现问题。当我echo $0收到-bash。这不是我的正常 bash。

当我打开一个新终端并输入时,echo $0我收到-bash(这是正确的)。并且python文件正常工作。任何建议都非常感谢。

相关内容