【发布时间】:2019-02-03 04:15:40
【问题描述】:
我有 2 个 shell 脚本 A.sh 和 B.sh
在 A.sh 内部,我想根据某些条件调用 B.sh。 如下所示:
VAR=""
if [-z $VAR]:
then
echo "running B"
<path to B.sh>/B.sh > log.txt 2>&1
A.sh 被安排为一个 cron 作业,在 crontab 中每 15 分钟运行一次。
我已授予 B.sh 和 A.sh 执行所需的权限。
当我从 shell 运行 A 时,如果满足条件,它可以执行 B,但是当通过 crontab 运行时,A 无法调用 B。它也不会抛出任何错误。
对此有任何帮助。
【问题讨论】:
-
尝试使用 set -x 模式运行脚本以获取更多信息。
-
之类的?发布您正在使用的exact 代码,因为您的代码有几个涉及
[命令和B.sh的未指定路径的错误。如果它是相对路径,那么问题可以通过从 shell 运行A.sh和从cron运行时有效的工作目录之间的差异来解释。 -
通过shellcheck.net 运行您的脚本,看看它发现了什么问题。
-
请显示相关代码并说明确切的错误。另见How to create a Minimal, Complete, and Verifiable example。部分脚本和
<path to B.sh>没有帮助。