我正在尝试在我的脚本中执行检查,以确保用户以正确的格式输入数据。
我需要一张支票,以确保用户直接输入正整数,然后输入字母' k'
有效输入的示例:
4K
25K
17K
无效输入的示例
2.1
4J
-2k
我需要什么
如果[[输入格式正确]];然后
...
...
fi
修改
到目前为止,我对此有以下几点:
如果! [[regex =〜^ [1-9] + k $]];做
但这似乎没有用。有什么想法吗?
这个有点棘手。我需要一个检查,以确保用户输入一系列值,由最小和最大范围表示,然后直接跟随' k'并用没有空格的短划线分隔。它们还可以输入多个范围,这些范围将用逗号分隔,不含空格。
有效输入的示例:
4K-5K
1K-2K
3K-6K,1K-9K,3K,8K
2K-5K,12K-20K
无效输入的示例
2.5-3 4k-10k
4k-3k,8k-9k
7k - 9k,-3-6
我需要什么
如果[[输入格式正确]];然后
...
...
fi
答案 0 :(得分:0)
使用regular expressions in BASH这是非常合理的。其他详细信息可在the Bash manual中找到。
singleinputregex='^[1-9][0-9]*k$'
if [[ $singleinput =~ $singleinputregex ]]; then
# ...
fi
rangeinputregex='^[1-9][0-9]*k-[1-9][0-9]*k(,[1-9][0-9]*k-[1-9][0-9]*k)*$'
if [[ $rangeinput =~ $rangeinputregex ]]; then
# ...
fi