数週間前に、次の 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
また、Ruby のインストールに使用しようとするとrbenv
、この関数をコメントアウトするまで、「pwd はディレクトリを返しませんでした」などのエラーがスローされました。
bash が危険であることは十分にわかっていますが、関数の何が問題を引き起こしているのかわかりません。