shell如何判断一个变量是数字还是字符串?
发布网友
发布时间:2024-09-30 06:17
我来回答
共1个回答
热心网友
时间:2024-10-27 08:06
1. 可以通过使用`grep`命令结合正则表达式来判断变量是否为数字。整数由0到9这10个数字组成,如果字符串中包含任何非数字字符,则可以判断它不是整数。正则表达式中表示非数字为`[^0-9]`。
2. 数字的概念非常广泛,包括正数、负数、分数、百分数、指数等。可以使用`sed`命令过滤掉这些符号,如正数的加号`+`、负数的减号`-`、百分数的百分号`%`等。
3. 结合以上两点,可以编写如下代码:
```bash
#!/bin/bash
while :; do
read -p "input value:" var
if [[ $var == q || $var == Q ]]; then
exit
fi
echo "$var" | sed 's/\.\|-\|+\|%\|\^//g' | grep [^0-9] >/dev/null && echo "$var is not number" || echo "$var is number"
done
```
4. 执行上述脚本后的效果如下: