私がやりたいことは次のようなものです
$ ./my-script -a file1 file2 file3 -d file4 file5 file6 -r file7 file8
また
$ ./my-script -a *.txt -d src1/*.tex sr2/*.tex
ただし、getopts はフラグごとにゼロまたは 1 つの引数しかサポートしていないようです。
この要件を処理する良い方法はありますか? 私は現在、自分で引数を解析しています..
私がやりたいことは次のようなものです
$ ./my-script -a file1 file2 file3 -d file4 file5 file6 -r file7 file8
また
$ ./my-script -a *.txt -d src1/*.tex sr2/*.tex
ただし、getopts はフラグごとにゼロまたは 1 つの引数しかサポートしていないようです。
この要件を処理する良い方法はありますか? 私は現在、自分で引数を解析しています..
各オプションに単一のコンマ区切り (またはその他の区切り文字) の引数を指定します。
$ ./my-script -a file1,file2,file3 -d file4,file5,file6 -r file7,file8
次に、オプションを解析した後、個々の引数を分割します。それを行う1つの方法:
IFS=, read a1 a2 a3 <<< $a_argument
また
IFS=, read -a a <<< $a_argument
別のオプションは、引数を引用符で囲み、スクリプトに展開を行わせることです。
./my-script -a '*.tex' -d '*.pdf'
$ ./my-script -a '*.txt' -d 'src1/*.tex sr2/*.tex'
スクリプト内の場所:
#!/bin/bash
as=( $a_argument )
ds=( $d_argument )
find
これは、たとえば-name
プライマリを処理する方法と似ています。