スクリプトが実行されるフォルダ自体を除いて、現在のパスを変数に保存するスクリプトを実行したいと思います。例:
/tmp/test/test2/test3/test.sh
path=$PWD
echo $path
しかし、/tmp/test/test2/test3
shスクリプトを含むフォルダを除外したいと思います。
だから私が望む結果は次のとおりです。
/tmp/test/test2
ベストアンサー1
あなたはそれを使用することができます
dir=${PWD%/*} # or: dir=$( dirname "$PWD" )
または
dir="$PWD/.."
または
dir=".."
最初のケースでは、PWD
現在の作業ディレクトリを含む変数を/
使用して、最後のディレクトリとそれ以降のすべてのエントリを削除して親ディレクトリへのパスを取得します。
2番目の場合、PWD
変数は単に上記のディレクトリへのパスを作成するために使用されます..
。
3番目のケースでは、現在のディレクトリへの相対パスを使用して上記のディレクトリを参照するだけです。
どの代替を使用するかは、パスを使用したいターゲットによって異なります。
例:
$ echo $PWD
/tmp/shell-sh.jAtMYgn0
$ dir=${PWD%/*}
$ echo "$dir"
/tmp
$ dir="$PWD/.."
$ echo "$dir"
/tmp/shell-sh.jAtMYgn0/..
$ dir=".."
$ echo "$dir"
..