以下のスクリプトの実行に問題があります (win 7 の Cygwin で気をつけてください)。それを「myscript.sh」と呼びましょう。実行すると、次のように入力します。
yearmonth: 2011-03
daypattern: 2{5,6,7}
logfilename: error*
query: WARN
#! /bin/bash
yearmonth=''
daypattern=''
logfilename=''
sPath=''
q=''
echo -n "yearmonth: "
read yearmonth
echo -n "daypattern: "
read daypattern
echo -n "logfilename: "
read logfilename
echo -n "query: "
read q
cat "$yearmonth/$daypattern/$logfilename" | grep --color $q
私が得る出力は次のとおりです。
cat: /2011-03/2{5,6,7}/error* そのようなファイルのディレクトリは存在しません。
ただし、daypattern=25 OR daypattern=26 などと入力すると、スクリプトは機能します。また、もちろん、シェル自体にコマンドを入力すると、ワイルドカードが期待どおりに展開されます。しかし、これは私が望むものではありません。ユーザーが必要に応じて式を入力するように促し、後でスクリプトでこれらのコマンドを実行できるようにしたいと考えています。
これがどのように可能になるかについてのアイデアはありますか?
あなたの助けに感謝します。