linux:如何在给定目录中运行命令


16

我只是想从给定目录中运行一个命令(实际上是一个shell脚本)作为cron作业。我如何运行它,以便将其设置为给定目录而不使用cd

Answers:


16

您的问题毫无意义。使用cd。如果您cd因为尝试过而无法使用答案而无法使用,则可能是您未在crontab中正确输入答案。

最简单的方法是编写一个小的shell脚本,该脚本将cd并运行您的主要任务,然后对脚本进行cron。


1
crontab可以让我将多个命令放在一个作业中吗?如果没有,我将不得不对cd [path] 进行编码。而且路径可能会发生变化,从而导致非常烦人的部署问题以及分散的配置,这是我不惜一切代价避免的事情。
僵尸2010年

1
@Zombies:是的,您可以在一个作业中放置多个命令(例如,用分号或分隔它们&&),但是您也可以编写一个包含所有命令的单独脚本,然后将脚本的路径放在cron中,如Daenyth建议的那样。如果愿意,您的脚本可以执行类似从配置文件中读取目录的操作-关键是,但是您想要将目录名称包含在脚本中,所以不要使用cd
David Z

我知道了。我想直接在crontab上使用cd,因为如果我将其写入文件中,则必须在每个文件中对其进行编辑,这使得配置容易/容易损坏。
僵尸2010年

3
而且,如果将CD放入crontab文件中,则必须在每个crontab文件中对其进行编辑。我不明白这个问题。也许您可以解释您正在尝试做的更充分的事情。
garyjohn 2010年

从crontab文件运行shell脚本的另一个原因是要确保正确设置了环境。通常,为cron作业提供的环境几乎是最小的,因此您通常需要将其重置为更有用的环境。
乔纳森·莱夫勒

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.