9

bash で getopts を使用してコマンド ライン引数を処理しようとしています。要件の 1 つは、(引用符を使用せずに) 任意の数のオプション引数を処理することです。

1 番目の例 (1 番目の引数のみを取得)

madcap:~/projects$ ./getoptz.sh -s a b c
-s was triggered
Argument: a

2番目の例(このように動作させたいが、引数を引用する必要はありません」

madcap:~/projects$ ./getoptz.sh -s "a b c"
-s was triggered
Argument: a b c

これを行う方法はありますか?

これが私が今持っているコードです:

#!/bin/bash
while getopts ":s:" opt; do
    case $opt in
    s) echo "-s was triggered" >&2
       args="$OPTARG"
       echo "Argument: $args"
       ;;
   \?) echo "Invalid option: -$OPTARG" >&2
       ;;
    :) echo "Option -$OPTARG requires an argument." >&2
       exit 1
       ;;
    esac
done
4

3 に答える 3