ファイルを圧縮するスクリプトに取り組んでいます。変数の内容がパターンに一致するまで「ループまで」を実行したいと思います。スクリプトは zenity を使用しています。これは主要な部分です:
part="0"
pattern="^([0-9]{1}[0-9]*([km])$"
until `grep -E "$pattern" "$part"` ; do
part=$(zenity --entry \
--title="Zip the file" \
--text "Choose the size of divided parts:
(0 = no division, *m = *mb, *k = *kb)" \
--entry-text "0");
if grep -E "$pattern" "$part" ; then
zenity --warning --text "Wrong text entry, try again." --no-cancel;
fi
done
「k」または「m」で終わる数字を含む文字列を受け入れ、「0」で始まる文字列を受け入れないようにしたい。
模様は大丈夫?