gpt4 book ai didi

linux - 带有正则表达式的 bash 条件

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:38:53 24 4
gpt4 key购买 nike

我打算学习 bash 编程。我只是写了一个简单的脚本,以便从输入流中读取数字并使用正则表达式检查它们是否为有效的数字格式。事实上脚本应该接受输入直到输入是非数字的。但它不能正常工作。

代码:

i=0
echo "plz enter number in valid format: "

while true
do
read input

if [[ $input =~ *[^0-9]* ]]; then
echo "YOU DIDN'T ENTER A VALID NUMBER"
break
else
arr[$i]=$input
echo $input >> inputnums

fi
done

当我输入数字或字符时,条件为真。我的意思是我在输出中有回显“消息”。

最佳答案

您正在将 shell globing 与正则表达式混合,将您的 if 条件更改为:

if  [[ $input =~ [^0-9] ]]; then

regex 应该使用 .* 而不是 shell shell glob 使用的 *

关于linux - 带有正则表达式的 bash 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19591883/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com