我处理压缩文件的脚本。我想做一个“直到循环”直到变量的内容与模式匹配。该脚本使用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' 开头的字符串。
图案好吗?