pwd | grep 'database$'
if [ "$?" = 0 ]; then
echo "has db"
cd ..
cd ..
echo "after has db"
fi
Run Code Online (Sandbox Code Playgroud)
执行后我看到
has db
after has db
Run Code Online (Sandbox Code Playgroud)
我仍然在同一个目录中,如何解决它?
Cae*_*ium 11
我认为这与您如何运行脚本有关。
如果你这样做:
sh ./script.sh
Run Code Online (Sandbox Code Playgroud)
或者
./script.sh
Run Code Online (Sandbox Code Playgroud)
然后它调用一个新的 shell,运行脚本,然后返回到当前的 shell。所以 cd 是在新的 shell 中完成的,你当前的 shell 没有受到影响。
试试这个:
. ./script.sh
Run Code Online (Sandbox Code Playgroud)
这将在您当前的 shell 中运行 script.sh,并且您将在它完成后保留结果。