问题描述
我编写了一个应该由 cron 作业执行的 bash 脚本。但是根据 cron 输出,bash 脚本中的其中一行没有执行。
这是我的 bash 脚本
#! /bin/bash
/usr/bin/MysqL</home/elijah/Desktop/covid-19-management-tool/cron_job/import.sql
./home/elijah/Desktop/covid-19-management-tool/cron_job/clear
这是我在cron执行后得到的输出
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
Message-Id: <20210205172001.F3C5FE221D@elijah-HP-255-G6-Notebook-PC>
Date: Fri,5 Feb 2021 20:20:01 +0300 (EAT)
/home/elijah/Desktop/covid-19-management-tool/cron_job/dbs.sh: line 3: ./home/elijah/Desktop/covid-19-management-tool/cron_job/clear: No such file or directory
--F3C5FE221D.1612545602/elijah-HP-255-G6-Notebook-PC--
对于我的 bash 脚本中的第 3 行,我想运行一个名为 clear
的可执行文件。
有人请告诉我我应该如何在 shell 脚本中做到这一点,以便 cron 能够理解它。
解决方法
去掉 .
之前的 /home
(除非你确实有以下目录结构):
/home/elijah/home/elijah/Desktop/covid-19-management-tool/cron_job/clear
.
使其成为相对路径,而它最有可能是绝对路径。