bash中类似atoi()的函数?
假设我使用一个状态文件来存储一个数字,我读取的数字如下:bash中类似atoi()的函数?,bash,Bash,假设我使用一个状态文件来存储一个数字,我读取的数字如下: COUNT=$(
COUNT=$(
但由于文件可能会被中断,$COUNT可能不包含“数字”,而是包含任何字符
除了使用正则表达式,即if[[$COUNT~^[0-9]+$];然后布拉布拉;fi
,是否有“atoi”函数将其转换为数字(如果无效,则为0)
编辑
最后,我决定使用如下内容:
a=$($a+0))
或
declare-ia;a=“abcd123”;echo$a#得到0
多亏了J20的提示。您不需要
atoi
等价物,Bash变量是非类型化的。尝试在算术中使用设置为随机字符的变量只会默默地忽略它们。乙二醇
foo1=1
foo2=bar
let foo3=foo1+foo2
echo $foo3
给出结果1
请参见
echo$COUNT | bc
应能够根据陪审员的评论进行编号,容易出错
echo${COUNT/[a-Z]*}| bc
与regex方法类似,但不容易出错
case "$c" in
[0-9])...
您应该按字符顺序读取输入字符串