【发布时间】:2017-06-05 15:21:28
【问题描述】:
我有一些问题,我不知道是什么原因造成的。在我的脚本(bash)中,我想用“if”询问我的 $1 是否是一个数字。只有 0-9 位和可选的“-”。 当我做
`if [[ "$1" -eq "$1" ]]`
或
if `([[ $1 =~ ^-?[0-9]+$ ]]`
两次我都能做到
`./myscript [number]`
或
./myscript number*
并且该号码被接受。但我当然不希望 [number] 成为一个数字作为参数。只有数字,没有任何其他符号、括号或其他东西
谁能告诉我我的问题在哪里?我只想了解为什么 bash 会这样。我不想剪掉一些完整的代码来解决我的问题。只有一些想法是导致问题的原因 问候
【问题讨论】:
-
你能展示你的代码吗?
标签: regex linux bash shell unix