几周前,我创建了以下 bash 函数并将其添加到我的 bash 配置脚本中:
cd() {
if [ "$PS1" ]
then
if [ "$1" ]
then pushd "$1" >/dev/null && ls $LS_OPTIONS
else pushd >/dev/null && ls $LS_OPTIONS
fi
else
if [ "$1" ]
then pushd "$1" >/dev/null
else pushd >/dev/null
fi
fi
}
直到最近,当它阻止其他一些命令正常运行并且我必须注释掉该功能时,我才遇到它的问题。例如,当尝试克隆 heroku 应用程序时,我得到:
environment: line 8: pushd: -P: invalid number
pushd: usage: pushd [-n] [+N | -N | dir]
environment: line 8: pushd: -P: invalid number
pushd: usage: pushd [-n] [+N | -N | dir]
environment: line 10: pushd: no other directory
并且在尝试使用rbenv
安装 ruby 时,它会抛出一个错误,例如“pwd 没有返回目录”,直到我注释掉这个函数。
我知道 bash 足够危险,我不确定函数中的什么可能导致头痛。