gpt4 book ai didi

command-line - 像 cron 一样运行命令,但从命令行运行

转载 作者:行者123 更新时间:2023-12-04 04:51:26 25 4
gpt4 key购买 nike

我有一个试图从 cron 运行的脚本。当我从 bash 运行它时,它工作得很好。然而,当我让 cron 执行它时,我得到:

myscript.sh: line 122: syntax error: unexpected end of file

我想要的是一种运行命令的方法,就像它是一个 cron 作业一样,但在我的 shell 中执行。

作为旁注:有人知道 cron 下会有什么不同吗? (脚本中已有 #!/bin/sh 行)


回答我自己的问题:我将其添加到我的 crontab 中:

*  *   * * *    bcs     for ((i=$(date +\%M); i==$(date +\%M) ;)) ; do find ~/.crontemp/ -name '*.run' -exec "{}" ";" ; sleep 1; done`

并创建了这个脚本:

#!/bin/sh
tmp=$(mktemp ~/.crontemp/cron.XXXXX)
mknod $tmp.pipe p
mv $tmp $tmp.pre
echo $* '>' $tmp.pipe '1>&2' >> $tmp.pre
echo rm $tmp.run >> $tmp.pre
chmod 700 $tmp.pre
mv $tmp.pre $tmp.run
cat $tmp.pipe
rm $tmp.pipe

有了它,我可以在不超过一秒的延迟下运行任意命令。

(是的,我知道其中涉及各种安全问题)

问题是 fiif 问题。呸!

最佳答案

当脚本以交互方式工作并在 cron 中失败时,它几乎总是 PATH 问题。 cron 作业进程中的默认 PATH 比交互式 session 中的要短得多。典型的结果是您尝试运行的某些系统实用程序出现“未找到”错误,该实用程序不在 cron 的 PATH 中。

我猜想您尝试运行的某些命令不在路径上,因此它应该创建的文件是空的,并且尝试读取该文件的命令给您这个错误消息。

关于command-line - 像 cron 一样运行命令,但从命令行运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2998840/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com