0

可能这个问题看起来很愚蠢,但无论如何。我有一个脚本文件/local/bin/app1/script.sh,我需要知道它的父目录名称bin。我知道我可以用它${0%/*}来确定父目录的名称。我不熟悉 bash 所以有人可以帮我找出父母的父目录名称吗?非常感谢。

4

2 回答 2

5

再次应用这个技巧:

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

或者,让外壳告诉你

( cd ../.. ; pwd )
于 2012-07-27T12:10:04.227 回答
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”。

于 2012-07-27T12:13:59.303 回答