2

別の特定のディレクトリを含むディレクトリが見つかるか、「/」ディレクトリに到達するまで「cd ..」を実行するbashスクリプトを作成しようとしています。

私が達成しようとしているのは次のようなものです:

while test -d REQUIRED_DIR || [[ "$PWD" != "/" ]];do cd ..; done

目標はREQUIRED_DIR、ルート ディレクトリに到達したときにナビゲートを停止または停止することです。

以下は、動作しない bash コードです。

while if [ "$PWD"=="/" ];then echo $PWD;false;else true;fi
do
        cd ..
        #echo `pwd`
done

ルート ディレクトリ内にない場合でも、if 条件は常にパスします。

更新:-「if」は、このような「==」記号でスペースを空けると、期待どおりに機能し [ "$PWD" == "/" ]ます。

4

1 に答える 1

6

while if私には新しいものです。それらを組み合わせて何を達成しようとしているのか完全にはわかりません。

自分で試してみたいと思うかもしれませんwhile

while [[ "$PWD" != "/" ]] ; do
    cd ..
done

または、もっと簡単に試すこともできます:

cd /

コメントに示されているように、を含む最初のディレクトリに到達するか、見つからない場合は、次のように簡単に実行できます$REQUIRED_DIR/

while [[ "$PWD" != "/" ]] ; do
    if [[ -d "$REQUIRED_DIR" ]] ; then
        break
    fi
    cd ..
done
于 2012-08-24T11:28:54.937 に答える