mkdir で作成したパスを出力する

cd `mkdir foo`

とか

tar -xzvf foo.tar.gz -C `mkdir foo`

とかしたいわけですよ。
zshならpush-lineがあるので、しまったまだディレクトリを作ってないやと思っても大丈夫なわけだが、他のシェルとかだとどうすればいいか分からないので上記の様な解決方法を思いついてみた。

function mkdir {
  ALL_ARG="$@"
  OPT_COUNT=$OPTIND
  while getopts vpm: OPT
  v);;
  p);;
  m)
    (( ARG_COUNT++ ))
    ;;
  esac
  shift $ARG_COUNT
  /bin/mkdir $ALL_ARG && echo "$@"
}

オプションを除いて(完全じゃないけど)パスのみを標準出力に出してあげるラッパー関数を書いた。
引数解析は全く持ってうまくないので過信は禁物だが、これでbashkshでも後戻りが少なくなりそうな予感。