我有点糊涂了!我不知道如何提出这个问题。
可能有一个例子。
我正在编写一个 bash 脚本来检查当前目录中是否有名为“FNS”的特定文件夹。为了检查文件是否存在,我这样做了。
FOLDER=FNS
if [ -f $FOLDER ];
then
echo "File $FOLDER exists"
else
# do the thing
fi
如果文件不存在就会出现问题!我希望脚本记下当前路径并移回目录 [我的意思是 cd .. 在命令行中,我不确定我在这里使用的词汇是否正确]并检查文件是否存在,如果不存在,再次后退一步,直到出现它所在的目录[肯定存在]。找到后将路径存储在变量中。
当前的执行目录不应更改。我尝试将 pwd
传递给变量并剪切到最后一个斜杠和其他一些东西但没有成功!
希望我能在这方面有所作为。 像往常一样,欢迎提出建议、算法和解决方法:)
最佳答案
试试这个,用括号启动一个子 shell,这样 cd 命令就不会改变当前 shell 的当前目录
(while [ ! -d "$FOLDER" ];do cd ..;done;pwd)
关于regex - 检查目录是否存在递归地反转路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11352973/