用例:我正在 /path/with/a/very/long/name 的终端中工作,我想更改为深度嵌套的其他目录。但凭记忆我不知道那条路。因此,我想通过 GUI 进行浏览,以便找出需要导航的位置。
我想出了这个脚本:
#!/bin/sh
echo "change working directory"
MYDIRECTORY=$(kdialog --getexistingdirectory ::label1);
if [ "$?" = 0 ]; then
cd "$MYDIRECTORY"
elif [ "$?" = 1 ]; then
echo "action canceled";
else
echo "ERROR";
fi;
exit 0
不幸的是,它不起作用。当脚本退出时,我保留在终端的原始目录中。我了解到这是因为执行 cd 命令的子 shell 退出时恢复了我的原始目录。
那么我怎样才能实现我的目标呢?
答案1
将其编写为 shell 函数(例如在 .bashrc 中)而不是脚本文件。