2012-07-27 101 views
0

可能這個問題看起來很愚蠢,但無論如何。我有一個腳本文件/local/bin/app1/script.sh,我需要知道它的父母父目錄名稱bin。我知道我可以使用${0%/*}來確定父目錄名稱。我不熟悉bash,所以有人可以幫我弄清楚父母的父目錄名嗎?非常感謝。Linux父母父文件路徑

回答

5

剛申請的伎倆一次:

parent=${0%/*} 
grandparent=${parent%/*} 

或者,讓殼告訴你

(cd ../.. ; pwd) 
+0

對我很好,我喜歡這種單線解決方案。謝謝。 – 2012-07-27 12:45:52

1

舉個例子吧,希望它有助於:

kent$ pwd 
/tmp/bin/app 

kent$ cat t.sh 
#!/bin/bash 
a=`dirname $0` 
if [ $a = '.' ];then 
    a=`pwd` 
fi 
current=$a 
echo "current path:"$current 
cd $current 
echo "parents' parent:" 
awk -F'/' '{print $(NF-1)}' <<<$current 

kent$ ./t.sh   
current path:/tmp/bin/app 
parents' parent: 
bin 

kent$ cd /usr 

kent$ pwd 
/usr 

kent$ /tmp/bin/app/t.sh 
current path:/tmp/bin/app 
parents' parent: 
bin 

所以將返回你「bin」。