获取unix脚本的行为就像从不同的文件夹运行一样

时间:2011-06-03 11:09:14

标签: shell unix

我正在使用调度程序来运行启动我的应用程序的unix脚本。该脚本位于调度程序使用的用户的PATH中。因此,可以从y

运行

我的应用程序日志文件是相对于运行脚本的位置创建的。 Unfortunatley,调度程序不会从我希望的文件夹运行脚本,因此日志文件不会更正文件夹。

我是否有任何方法可以让脚本运行并且从指定文件夹运行时表现如下,例如./ScriptName.sh Working_Folder | Run_Folder

注意:我无法更改脚本

2 个答案:

答案 0 :(得分:2)

如果您的调度程序使用shell运行您的任务(它可能会执行),您可以直接使用{ cd /log/dir ; script; }作为命令。

如果没有,你需要使用@Gilles所述的包装脚本,但我会这样做:

#!/bin/sh
cd /log/dir
exec /path/to/script "$@"

保存一点内存。额外的exec将确保只有脚本解释器在内存中而不是两者(sh和脚本解释器)。

答案 1 :(得分:1)

如果无法更改脚本,则必须使调度程序运行不同的命令,而不是直接运行脚本。例如,让调度程序运行一个简单的包装器脚本。

#!/bin/sh
cd /desired/directory/for/log/files
/path/to/script "$@"