1. ホーム
  2. bash

Bashのコマンドライン引数 [重複]について

2023-09-17 14:10:13

質問

私は異なる引数を取るbashスクリプトを書きたいと思っています。それは通常のlinuxのコンソールプログラムのように使用されるはずです。

my_bash_script -p 2 -l 5 -t 20

なので、値2はpagesという変数に、パラメータlはlengthという変数に、値20はtimeという変数に保存しておく必要があります。

このような場合、どのようにすればよいのでしょうか?

どのように解決するのですか?

を使用します。 getopts ビルトインを使用します。

チュートリアルはこちら

pages=  length=  time=

while getopts p:l:t: opt; do
  case $opt in
  p)
      pages=$OPTARG
      ;;
  l)
      length=$OPTARG
      ;;
  t)
      time=$OPTARG
      ;;
  esac
done

shift $((OPTIND - 1))

shift $((OPTIND - 1)) は、コマンドラインパラメータをシフトして、スクリプトに可能な引数にアクセスできるようにします。 $1, $2, ...