-1

我正在尝试在我的脚本中实施检查,以确保用户以正确的格式输入数据。

  1. 我需要检查以确保用户输入的是正整数,后跟字母“k”

    有效输入示例:
    4k
    25k
    17k
    无效输入示例
    2.1
    4j
    -2k 如果 [[ 输入格式正确 ]]
    我需要什么;
    那么
    ………… 呸
    _

编辑: 到目前为止,我有以下内容:
如果![[ 正则表达式 =~ ^[1-9]+k$ ]]; 做
,但这似乎不起作用。有任何想法吗?

  1. 这个有点棘手。我需要一个检查,以确保用户输入的值范围由最小和最大范围表示,后跟一个“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 如果[[输入格式正确]],
    我需要什么;
    那么
    ………… 呸
    _

4

1 回答 1

0

在 BASH中使用正则表达式是非常合理的。Bash 手册中提供了其他详细信息。

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
于 2014-09-11T22:06:55.190 回答