我正在尝试从文本文件中读取一个数字,如果该数字+ 8不超过100,则将其增加8:
num='head -c 4 storage.txt' // num = '55'
我如何做一个等价的atoi,从文件中读取一个char,转换为int。 然后执行以下操作:
if(num+8 >= 100)
return
else num+=8
然后读回文件
num>storage.txt
答案 0 :(得分:1)
在大多数(如果不是全部)Unis外壳中,所有变量都存储字符串。转换为整数的概念不存在。
但是,某些操作能够将字符串作为输入,将其内部转换为整数,然后执行该操作,然后将结果作为字符串返回。
在bash中,您的意图可以写成:
if [ $(($num + 8)) -lt 100 ]
then
num=$((num+8))
fi
答案 1 :(得分:0)
有很多方法可以做到这一点。这是一种使用算术扩展(https://www.gnu.org/software/bash/manual/html_node/Arithmetic-Expansion.html)的方法。
if [ $(( num + 8 )) -lt 100 ]; then
num=$(( num + 8 ))
fi
echo $num > storage.txt