检查pwd是否在bash中

检查pwd是否在bash中,bash,Bash,我正在尝试编写一个bash脚本,它将在cd上运行。。直到找到包含另一个特定目录的目录,或者到达/目录 我想要达到的目标是: while test -d REQUIRED_DIR || [[ "$PWD" != "/" ]];do cd ..; done while [[ "$PWD" != "/" ]] ; do if [[ -d "$REQUIRED_DIR" ]] ; then break fi cd .. done 目标是找到所需的目录或在到达根

我正在尝试编写一个bash脚本,它将在cd上运行。。直到找到包含另一个特定目录的目录,或者到达/目录

我想要达到的目标是:

while test -d REQUIRED_DIR || [[ "$PWD" != "/" ]];do cd ..; done
while [[ "$PWD" != "/" ]] ; do
    if [[ -d "$REQUIRED_DIR" ]] ; then
        break
    fi
    cd ..
done
目标是找到所需的目录或在到达根目录时停止导航

下面是不起作用的bash代码

while if [ "$PWD"=="/" ];then echo $PWD;false;else true;fi
do
        cd ..
        #echo `pwd`
done
即使不在根目录中,if条件也始终通过

更新:-当我离开空格b/w==符号时,if按预期工作 [$PWD==/]。

虽然if对我来说是一个新的,但我不完全确定通过将它们结合起来,你想要实现什么

我想您可能想自己尝试一下:

while [[ "$PWD" != "/" ]] ; do
    cd ..
done
或者您可以尝试更简单的方法:

cd /
如果,如您的评论所示,您需要零碎地执行此操作,以便最终进入包含$REQUIRED_DIR的第一个目录,或者/如果找不到,您可以简单地执行以下操作:

while test -d REQUIRED_DIR || [[ "$PWD" != "/" ]];do cd ..; done
while [[ "$PWD" != "/" ]] ; do
    if [[ -d "$REQUIRED_DIR" ]] ; then
        break
    fi
    cd ..
done
虽然if对我来说是一个新概念,但我不完全确定通过将它们结合起来,你想要实现什么

我想您可能想自己尝试一下:

while [[ "$PWD" != "/" ]] ; do
    cd ..
done
或者您可以尝试更简单的方法:

cd /
如果,如您的评论所示,您需要零碎地执行此操作,以便最终进入包含$REQUIRED_DIR的第一个目录,或者/如果找不到,您可以简单地执行以下操作:

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

谢谢,而if实际上是一种while表达式,因此根据if表达式的真值while决定继续或退出。我不能使用cd/,因为我的目标不是移动到/dir,实际上我想编写一个脚本,如while test-d REQUIRED_dir | |[[$PWD!=/];做cd。。;完成。目标是找到所需的目录并导航到根目录。@Talespin_Kit,您可能在原始问题中提到:-查看更新以获得该问题的解决方案。谢谢,while if实际上是一种while表达式,因此,根据if表达式的真值,while决定继续或退出。我不能使用cd/,因为我的目标不是移动到/dir,实际上我想编写一个脚本,如while test-d REQUIRED_dir | |[[$PWD!=/];做cd。。;完成。目标是找到所需的目录并导航到根目录。@Talespin_Kit,您可能在原始问题中提到:-查看更新以获得该问题的解决方案。