我安装了一个 Ubuntu Server 版本,尽管我对 Ubuntu 还不是很熟悉,但我还是想创建一个 bash 文件来在后台运行一个程序。更重要的是,我想让文件名显示正确,并在开始运行程序之前创建它(我喜欢我的调试功能)。
但是,这是我的 bash 脚本:
#!/bin/bash
PATH="/var/log/servers/Game/"
FILENAME="startup"
EXT=".log"
DATE=$(date +%d-%m-%Y)
NEWFILE=${PATH}${FILENAME}_${DATE}${EXT}
我已经验证该文件确实存在于 PATH 目录中。但是,问题出在 date 命令上。当我运行脚本时,bash -x game.sh
显示的内容如下。
+ PATH=/var/log/servers/Game/
+ FILENAME=startup
+ EXT=.log
++ date +%d-%m-%Y
game.sh: line 5: date: command not found
+ DATE=
+ NEWFILE=/var/log/servers/Game/startup_.log
+ echo /var/log/servers/Game/startup_.log
我不明白为什么它会说命令不起作用,而我可以进入主控制台并运行date
并得到有效的响应。
任何帮助是极大的赞赏!
答案1
PATH="/var/log/servers/Game/"
这将设置PATH
为只是那个目录,而且我怀疑该目录包含date
。
使用大写变量名时要小心,因为很容易破坏标准环境变量。
坚持使用小写字母,并更具描述性。例如,考虑使用:
log_path="/var/log/servers/Game/"
NEWFILE="${log_path}${FILENAME}_${DATE}${EXT}"