我有一個頂級bash腳本,說ScriptA,和一個子目錄DY中的一些其他bash腳本,它與腳本A處於同一級別。假設其他bash腳本在DY中是ScriptB和ScriptC。 ScriptA將在某個時間點提供ScriptB和ScriptC,並且我希望所有的腳本都能夠在各自的目錄中運行。這裏有一個例子:將工作目錄更改爲當前腳本的目錄
SCRIPTA:
#!/bin/bash
touch script_a_1.txt
source DY/ScriptB.sh
touch script_a_2.txt
source DY/ScriptC.sh
ScriptB:
#!/bin/bash
touch script_b_file.txt
ScriptC:
#!/bin/bash
touch script_c_file.txt
所以script_a_1.txt和script_a_2.txt應在目錄SCRIPTA是in和script_b_file.txt和script_c_file.txt應該在子目錄DY中。
我試圖把
cd "$(dirname "${BASH_SOURCE[0]}")" && pwd
在ScriptB和ScriptC的頂部和SCRIPTA當它來自ScriptB回來,但回到SCRIPTA時,工作目錄仍處於DY而不是哪裏SCRIPTA是英寸
有關如何完成此任何想法?
EDIT
獎金如果溶液還可以在子進程運行腳本時處理的情況下,即 SCRIPTA:
#!/bin/bash
touch script_a_1.txt
source DY/ScriptB.sh
touch script_a_2.txt
DY/./ScriptC.sh
*也固定在初始SCRIPTA示例不採購ScriptC
除OP之外的所有清潔是而不是像你在這裏展示的那樣在子進程中運行。請修復(+1任一方式)。 –
@MadPhysicist好點,剛剛修復。 – yinnonsanders
工程就像一個魅力。這樣做有什麼警告嗎? – bitscuit