检查pwd是否是/ bash

时间:2012-08-24 11:25:49

标签: bash

我正在尝试编写一个“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”按预期工作b / w这样的“==”符号  [ "$PWD" == "/" ]

1 个答案:

答案 0 :(得分:4)

while if对我来说是一个新的,我不完全确定你想要通过组合它们来实现的目标。

我想你可能只想尝试while

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

或者你可以尝试更简单的方法:

cd /

如您的评论中所示,如果您需要以零碎的方式执行此操作,那么您最终会在包含$REQUIRED_DIR/的第一个目录中结束找不到一个,你可以简单地做一些事情:

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