运行bash脚本,就像我从不同的目录执行一样

时间:2013-07-21 23:03:33

标签: linux bash shell

也许标题有点“愚蠢”但我不知道如何表达我的问题以及如何搜索问题,即使它是非常简单的事情。

我有一组脚本,可以在它们执行的文件夹中生成一组报告。例如,我在文件夹/ a / folder /中有脚本“my_script.sh”,并且在此文件夹中存储了一组输出。由于我有很多实验,我想让它们运行整周,我正在考虑创建一个将调用所有其他脚本的bash脚本。 但输出将存储在全局脚本所在的文件夹中。

例如:

 /global/folder/global_script.sh

--->所有输出都存储在此文件夹中。

global_script.sh可能包含以下内容:

/experiments/exp1/script1.sh >report1.txt
/experiments/exp1/script2.sh >report2.txt
/experiments/exp1/script2.sh >report3.txt

我希望bash脚本的输出位于其文件夹中,而不是在全局文件夹中。

目前我正在手动导航到该文件夹​​并执行脚本。

(好的我可以更改代码并使用绝对路径!但是有更好的方法吗?)

2 个答案:

答案 0 :(得分:4)

您可以在执行每个脚本之前更改工作目录,或者将输出重定向到所需的目录:

cd /experiments/exp1/
sh /experiments/exp1/script1.sh >report1.txt

sh /experiments/exp1/script1.sh > /experiments/exp1/report1.txt

答案 1 :(得分:2)

简单地更改目录有什么问题?

cd /experiments/exp1
./script1.sh >report1.txt
./script2.sh >report2.txt
./script2.sh >report3.txt