オプションの入力引数を取りたい bash スクリプトがあり、その後にファイル名またはワイルドカードを含むファイル仕様が続きます。
スクリプトを実行
getopts_problem.sh -td *.txt
すると、現在のディレクトリにある .txt ファイルのリストが出力されます。
ファイルは readme.txt letter_to_editor.txt someotherfile.txt です
getopts_problem.sh -td *.ABC
スクリプト出力を実行すると
ファイルは *.ABC
現在のディレクトリに拡張子が「.ABC」のファイルはありません。何らかの理由で、スクリプトは「*.ABC」をファイル名として解釈します。「*.ABC」を実際のファイル名ではなく、展開するファイル名式としてスクリプトに認識させるにはどうすればよいですか? コードは次のとおりです。
# !/bin/sh
doDry=0
doTimestamp=0
while getopts ":dt" OPT;
do
case $OPT in
d ) doDry=1 ;;
t ) doTimestamp=1 ;;
? ) echo 'Bad options used. '
exit 1 ;;
esac
done
shift $(($OPTIND - 1))
fileList=$@
for file in "$fileList"
do
echo file is $file
done
exit 0