0

数週間前に、次の 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 が危険であることは十分にわかっていますが、関数の何が問題を引き起こしているのかわかりません。

4

1 に答える 1