存在しないパスでレベルを上げる

存在しないパスでレベルを上げる

スクリプトファイルには次のコードがあります。

if [ ! -d $dir ]; then
    cd $dir/..
    git clone http://...
fi

もちろん、書かれているようにこれは$dir存在しないので動作しません。ここでトップレベルのディレクトリを削除する良い方法はありますか?

ベストアンサー1

パラメータ拡張を使用してパスの最後のステップを削除します。既存のディレクトリが見つかるまでループでこれを行います。

while [[ $dir && ! -d $dir ]] ; do
    dir=${dir%/*}
done
if [[ -d $dir ]] ; then
    echo $dir exists.
fi

おすすめ記事