簡體   English   中英

Bash〜從目錄子目錄中的腳本訪問可能更改的目錄

[英]Bash ~ Access directory that may change, from script within sub-directories of directory

我對bash及其工作方式有些陌生,但是我想知道bash中是否有訪問目錄的地址,該目錄可能由於用戶在bash中的安裝位置而改變。 (這種情況一直發生,所以一定有)

例如:我有一個程序,其目錄為../program-directory/..

但是,然后用戶將程序文件下載到/extra-directory/從而導致我們存在/extradirectory/program-directory

然后我有一個運行在../program-directory/script-directory/script/example.bash的bash腳本

然后,我想從example.bash腳本中grep -rnw 'sample text' /program-directory

有沒有一種簡單的方法可以在program-directory grep而不用擔心用戶在哪里安裝該程序

僅供參考,我查看了一個Bash腳本可以告訴它存儲在哪個目錄中嗎? 但我需要到grep ../program-directory從一個名為的子目錄腳本../program-directory

如果您的程序位於/some/example/dir/program-directory/script-directory/script/example.bash並且您要在文件/some/example/dir/program-directory/sample.txt上運行grep ,則您用bash代碼編寫:

main() {
    local DIR="$(dirname "$0")"
    local DIR="$(cd "${DIR}" && pwd)"
    cd "${DIR}"
    grep 'search term' -- ../../sample.txt
}

上面的代碼有許多變體,它們的含義相同或含義略有不同。 編寫此代碼是為了清楚和正確處理帶有空格和特殊字符的目錄名稱。 這段代碼故意忽略了currend工作目錄(據我所知,這是您想要的)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM