【问题标题】:How to call another shell script from a shell script in Linux如何从 Linux 中的 shell 脚本调用另一个 shell 脚本
【发布时间】:2021-08-11 13:30:54
【问题描述】:

我正在尝试创建一个包装脚本以仅在早上 6 点触发父脚本。但它不能正常工作。它总是显示什么都不做,而其他部分正在循环而不退出。有人可以帮忙吗?

我想检查时间是否是早上 6 点,还需要检查文本文件中的字符串(状态)。如果两个条件都满足,我的父脚本应该通过这个包装脚本执行。

下面是脚本

路径= $(cat /home/avj/)
模式= $(cat /home/avj/status)

checktime="060000"

回声 $checktime
回声 $currentTime
虽然是真的

当前时间=date +"%H%M%S"
if [[ $currentTime -eq $checktime && $status == running ]];
然后
sh &path/parent.sh
其他
echo 什么都不做

完成

【问题讨论】:

    标签: linux unix


    【解决方案1】:

    通常在 Linux 上,您使用 crontab 执行此类调度任务。但是您必须在“设置计时器”时指定时间 - 因此,如果您希望在文件本身中对其进行配置,则必须为此创建一些机制。

    例如可以添加crontab

    30 1 * * 5 /path/to/script/script.sh
    

    将在每周五凌晨 1:30 (AM) 在这里执行脚本:

    30 分钟

    1 是一个小时

    接下来的 2 * 是月份和月份的日期(按此顺序),第 5 个是星期几

    【讨论】:

    • 谢谢。在我的脚本中,我需要检查从文本文件中读取的时间和字符串。如果当前时间是早上 6 点并且字符串是 "running" ,则应该触发父脚本。你能帮助如何通过shell脚本检查字符串是否“正在运行”。
    • hm,你写:还需要检查文本文件中的字符串(状态)...你想在文本文件中写入状态吗?什么是状态?进程状态 ?所以,我得到它: 1.检查你的进程状态,在文本文件中写入状态,如果时间是早上 6 点并且如果状态正在运行,则启动父脚本。我理解正确吗?
    • 是的,你是对的,我昨天尝试了同样的事情,它按预期运行。感谢您的支持!
    最近更新 更多