为 cron 作业编写 bash 脚本的正确方法是什么

问题描述

我编写了一个应该由 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

. 使其成为相对路径,而它最有可能是绝对路径。