0

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

我有一组脚本,它们在执行它们的文件夹中生成一组报告。例如,我在文件夹 /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 脚本的输出位于它们的文件夹中,而不是全局文件夹中。

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

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

4

2 回答 2

4

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

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

或者

sh /experiments/exp1/script1.sh > /experiments/exp1/report1.txt
于 2013-07-21T23:11:23.693 回答
2

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

cd /experiments/exp1
./script1.sh >report1.txt
./script2.sh >report2.txt
./script2.sh >report3.txt
于 2013-07-21T23:11:37.893 回答