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 に答える