atoi() 像 bash 中的函数

  • 本文关键字:函数 bash atoi bash
  • 更新时间 :
  • 英文 :


>想象一下,我使用状态文件来存储一个数字,我像这样读取数字:

COUNT=$(< /tmp/state_file)

但由于文件可能会被破坏,$COUNT可能不包含"数字",而是包含任何字符。

除了使用正则表达式,即if [[ $COUNT ~ ^[0-9]+$ ]]; then blabla; fi,是否有"atoi"函数将其转换为数字(如果无效则为 0)?

编辑

最后我决定使用这样的东西:

let a=$(($a+0))

declare -i a; a="abcd123"; echo $a # got 0

感谢 J20 的提示。

你不需要atoi等价物,Bash 变量是非类型的。尝试使用在算术中设置为随机字符的变量只会默默地忽略它们。例如

foo1=1
foo2=bar
let foo3=foo1+foo2
echo $foo3

给出结果1

请参阅此参考

echo $COUNT | bc应该能够投出一个数字,根据 jurgemaister 的评论容易出错......

echo ${COUNT/[a-Z]*} | bc类似于您的正则表达式方法,但不容易出错。

case "$c" in
[0-9])...

你应该按字符方式吃掉输入字符串。

相关内容

  • 没有找到相关文章

最新更新