检查pwd是否在bash中
我正在尝试编写一个bash脚本,它将在cd上运行。。直到找到包含另一个特定目录的目录,或者到达/目录 我想要达到的目标是:检查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 目标是找到所需的目录或在到达根
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,您可能在原始问题中提到:-查看更新以获得该问题的解决方案。