這是我的場景,我有一個名爲A的根文件夾,其中包含具有n種可能性的文件夾B,C,D。這些文件夾中的每一個都有一個bash腳本。我如何獲得這些bash腳本並使用bash腳本運行它們。Bash在所有目錄中獲取具有名稱的特定文件並運行腳本
A/B/run.sh
A/C/run.sh
A/D/run.sh
這是我的場景,我有一個名爲A的根文件夾,其中包含具有n種可能性的文件夾B,C,D。這些文件夾中的每一個都有一個bash腳本。我如何獲得這些bash腳本並使用bash腳本運行它們。Bash在所有目錄中獲取具有名稱的特定文件並運行腳本
A/B/run.sh
A/C/run.sh
A/D/run.sh
容易:)
eval "$(ls A/*/run.sh)"
LS將返回文件的列表,路徑到腳本。 (你可以使用發現過)
的「」周圍的$()將確保結果保持新線
EVAL將執行返回的行爲腳本。
請注意,如果腳本和內容的名稱中有空格,這可能是一個脆弱的解決方案。但是,如果它看起來像你所顯示的,那應該很好。
這是一個示例輸出:
~/ eval "$(ls */run.sh)"
I am running and my name is: one/run.sh
I am running and my name is: two/run.sh
的run.sh腳本是:
echo "I am running and my name is: $0"
謝謝按預期工作! – yetanotherposter
很高興我可以幫助.. – Rob
@yetanotherposter:另一種解決方案更一般,你可以很容易地適應非標準的目錄名稱。 – sjsam
做他們需要的任何參數呢?訂單是否重要? – Rob
訂單無關緊要,它們不需要任何參數 – yetanotherposter
糟糕,您忘記發佈您的代碼! StackOverflow是關於幫助人們修復他們的代碼。這不是免費的編碼服務。任何代碼都比沒有代碼更好。即使你不知道如何編寫它,甚至元代碼也會演示你如何看待程序應該起作用。 – ghoti