也许标题有点“愚蠢”但我不知道如何表达我的问题以及如何搜索问题,即使它是非常简单的事情。
我有一组脚本,可以在它们执行的文件夹中生成一组报告。例如,我在文件夹/ 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脚本的输出位于其文件夹中,而不是在全局文件夹中。
目前我正在手动导航到该文件夹并执行脚本。
(好的我可以更改代码并使用绝对路径!但是有更好的方法吗?)
答案 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