2013-04-11 31 views
-2

我寫了一個依賴於當前文件夾結構的bash腳本, 我應該怎麼做才能讓它在任何其他文件夾中運行(變得可移植)? 讓我解釋一下:我想讓腳本刪除腳本運行的當前目錄下的所有文件, 或刪除父文件夾中的所有文件, 有什麼解決方法?如何使bash腳本可移植?

+3

請向我們展示腳本。 – 2013-04-11 14:22:09

+2

請顯示一些代碼。 – 2013-04-11 14:22:39

+1

你能分享一些代碼嗎? – 2013-04-11 14:23:35

回答

0
cd "$(dirname "$0")" 

添加到您的腳本的頂部有它cd到腳本安裝在目錄中。然後你可以使用相對路徑,它們將相對於腳本目錄而不是用戶的pwd

如果由於某種原因dirname不可用,這裏是一個等效的語句,使用basename來代替。

cd "${0%%/$(basename "$0")}" 
+0

感謝john,但是我應該如何在我的腳本中編寫rm/foo/bar/*以便它可以在任何地方工作? – 2013-04-11 19:39:55

+0

你可以簡單寫'rm *' – 2013-04-11 19:44:37

+0

什麼系統有basename但不是dirname? – 2013-04-11 21:45:49

-1

請勿在腳本中使用絕對路徑。

+0

的文件不要討厭。答案是正確的,適合缺乏問題的附加信息,爲什麼downvote? – 2013-04-12 14:22:59

0

我們需要更多的信息,給你一個正確的答案...但是一些提示,如果你需要使它便攜的存儲,你需要在網絡共享上的任何文件,只是做一個新的文件夾斷//temporaryScriptFolder/並將網絡共享掛載到該空文件夾,以便您輕鬆訪問所需的任何資源。