我想检查某个字符串是否是数字,我试过这样:
if ${string} == *[!0-9]*
else echo its a number
但是当我有一个负数时,它表示它不是一个数字,我希望它也适用于负数。
答案 0 :(得分:3)
试试这个脚本
#!/bin/bash
string=$1
if [[ "$string" =~ ^(-)?[0-9]+$ ]]; then
echo 'Number'
else
echo 'Not number'
fi
这仅适用于整数。
如果要匹配和十进制数,请使用此测试
"$string" =~ ^-?[0-9]+(\.[0-9]+)?$