おそらく、この質問はばかげているように思えますが、とにかく。スクリプト ファイルが/local/bin/app1/script.sh
あり、その親の親ディレクトリ名を知る必要がありますbin
。${0%/*}
親ディレクトリ名を決定するために使用できることを知っています。私は bash に慣れていないので、誰かが親の親ディレクトリ名を理解するのを手伝ってくれませんか? どうもありがとう。
質問する
3520 次
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 に答える