我希望我清楚地說明了我的問題。具體而言,它是這樣的:如何打印我當前目錄的父目錄的名稱
我想用test或者case語句來確定變量$ DIR中包含的目錄名是我的當前目錄(。)還是它的父目錄(..)
當然,我可以回顯我的當前目錄(echo $ PWD),但回顯$ PWD的父母的最簡單方法是什麼?
謝謝。
我希望我清楚地說明了我的問題。具體而言,它是這樣的:如何打印我當前目錄的父目錄的名稱
我想用test或者case語句來確定變量$ DIR中包含的目錄名是我的當前目錄(。)還是它的父目錄(..)
當然,我可以回顯我的當前目錄(echo $ PWD),但回顯$ PWD的父母的最簡單方法是什麼?
謝謝。
您可以使用${PWD%/*}
:
$ echo $PWD
/home/me/test/t
$ echo ${PWD%/*}
/home/me/test
由於表達${PWD%/*}
是從$PWD
回剝/*
最短的匹配:
從Bash Reference Manual → 3.5.3 Shell Parameter Expansion:
$ {參數%字}
該單詞被擴展爲產生一個模式,就像在文件名擴展中一樣。如果模式與參數展開值的尾部分相匹配,則展開的結果是刪除了最短匹配模式的參數值。如果參數是'@'或'',則將模式刪除操作依次應用於每個位置參數,並且擴展是結果列表。如果參數是一個以'@'或''爲下標的數組變量,則模式刪除操作將依次應用於數組的每個成員,並且該擴展是結果列表。
dirname $PWD
或
dirname $(pwd)
+1。但是,它並沒有在這裏工作。在我做了'cd /':)之後 – Kent
@Kent也許它會在'cd //'之後工作:) – devnull