2013-07-21 52 views
0

也許標題有點「愚蠢」,但我不知道如何表達我的問題以及如何搜索問題,即使它是非常非常簡單。運行bash腳本就好像我是從不同的目錄執行

我有一組腳本在它們執行的文件夾中產生一組報告。例如,我在文件夾/ 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 
2

出了什麼問題簡單地改變目錄?

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

好吧,我不知道.....時間腦鎖。我現在對這個問題感到羞愧......感謝你們兩位的順便:) – nikosdi

+0

最好能留下這個問題嗎?或者我應該刪除它? – nikosdi

+0

@nikosdi:留下吧。別擔心。答案可能有助於未來的讀者通過搜索引擎。 – Jonik