最初の引数のデフォルト値がコマンドラインの値である場合、2番目の引数をどのように渡しますか?

最初の引数のデフォルト値がコマンドラインの値である場合、2番目の引数をどのように渡しますか?
cdcl()          { vlog -source -lint +define+"${1:-DEBUG}" -sv "${2:-*.sv}"; }

上記は私の機能で、.bashrcファイルで定義しました。以下は私のコマンドラインです

% cdcl 'RANDOM' 'abc.sv'

これは私に>>を与えるvlog -source -lint +define+RANDOM -sv abc.sv

コマンドラインで最初のプレースホルダ値の提供をスキップし、2番目のプレースホルダのみを提供する方法はありますか?

ベストアンサー1

関数が1つの引数でのみ呼び出されることを確認し、この場合を異なる方法で処理できます。

cdcl() {
  if (($# == 1)); then
    vlog -source -lint +define+DEBUG -sv "$1"
  else
    vlog -source -lint +define+"${1:-DEBUG}" -sv "${2:-*.sv}"
  fi
}

おすすめ記事