相关疑难解决方法(0)

[0-9], [[:digit:]] 和 \d 之间的区别

正则表达式维基百科的文章,似乎[[:digit:]]= [0-9]= \d

它们不相等的情况是什么?有什么不同?

经过一些研究,我认为一个区别是括号表达式[:expr:]依赖于语言环境。

regular-expression wildcards

58
推荐指数
4
解决办法
4万
查看次数

检查输入数字是否为整数

我试图检查一个输入是否是一个整数,我已经检查了它一百次,但没有看到这里的错误。唉,它不起作用,它会触发所有输入(数字/字母)的 if 语句

read scale
if ! [[ "$scale" =~ "^[0-9]+$" ]]
        then
            echo "Sorry integers only"
fi
Run Code Online (Sandbox Code Playgroud)

我玩过引号,但要么错过了它,要么什么也没做。我做错了什么?有没有更简单的方法来测试输入是否只是整数?

bash quoting regular-expression test

53
推荐指数
6
解决办法
18万
查看次数

在 Shell 算术评估中使用未经处理的数据的安全影响

在对最近问题评论中,Stéphane Chazelas 提到双括号算术存在安全隐患,例如:

x=$((1-$x))
Run Code Online (Sandbox Code Playgroud)

在大多数贝壳上。

我的谷歌技能似乎生疏了,我找不到任何东西。双括号算术的安全含义是什么?

shell security arithmetic

29
推荐指数
1
解决办法
1188
查看次数

测试一个变量在 bash 脚本中是否有超过 4 位的数字

我想测试一个变量是否有超过 4 位这样的数字

#!/bin/bash
if [ $input has more than 4 digits ]; then 
     echo "  * Please only 4 digits" >&2
     echo""
else
   the other option
fi
Run Code Online (Sandbox Code Playgroud)

bash shell-script

2
推荐指数
3
解决办法
229
查看次数