mc-wrapper 不会退出到 MC_PWD 目录

mc-wrapper 不会退出到 MC_PWD 目录

我最近安装了 openSUSE 13.1,并通过将 mc 别名为 来设置mc典型的为什么,以便mc-wrapper.sh让它退出到mc实例中的最后一个工作目录。然而,这似乎不起作用。我尝试调试mc-wrapper.sh脚本 -echo命令。

MC_USER=`id | sed 's/[^(]*(//;s/).*//'`
MC_PWD_FILE="${TMPDIR-/tmp}/mc-$MC_USER/mc.pwd.$$"
/usr/bin/mc -P "$MC_PWD_FILE" "$@"

if test -r "$MC_PWD_FILE"; then
        MC_PWD="`cat "$MC_PWD_FILE"`"
        if test -n "$MC_PWD" && test -d "$MC_PWD"; then
                echo "will cd in : $MC_PWD"
                cd $MC_PWD
                echo $(pwd)
        fi
        unset MC_PWD
fi

rm -f "$MC_PWD_FILE"
unset MC_PWD_FILE
echo $(pwd)

令我惊讶的是,mc-wrapper-sh确实改变了目录并且在退出之前位于目录中,但是回到 bash 提示符中,工作目录是调用脚本的目录。

是否需要一些 bash 设置才能使其工作?

答案1

使用上面的答案,bash shell 的解决方案如下:

alias mc='source /usr/lib/mc/mc-wrapper.sh'

或者

alias mc='. /usr/lib/mc/mc-wrapper.sh'

相关内容