我最近安装了 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'