【发布时间】:2015-08-07 03:19:38
【问题描述】:
如何在 linux bash 中使用一系列参数,例如 60-70 --> ($1 - $2)
case $1 in
$1-$2 )
echo "test"
shift;;
....) ....
【问题讨论】:
-
你不能。 case 语句中的子句必须是单个值。您基本上是在将
$1与$1-$2生成的字符串进行字面比较,例如case 'foo' IN 'foo-bar') -
它们不必是单个值;它们可以是模式。然而,模式不能很好地处理数字范围。
-
好的,谢谢,但我需要一个解决方案,你能帮我吗? @chepner
-
@MarcB 你能给我一个解决方案吗?
-
即使我们有数字范围模式匹配语法,
$1总是将在(包括)范围内$1-$2。这使得有人很难展示从您的代码派生的工作示例。也许您的意思是检查$1是否在$2和$3之间的范围内? (如果是这样,你有任何保证,如果这些是大于或小于另一个?)
标签: linux bash command-line scripting