linux Shell编程中常用的数学计算方法:expr,let,bc及其他。哪个效率更高一点?

linux Shell编程中常用的数学计算方法:expr,let,bc及其他。哪个效率更高一点?,第1张

从效率来说let==$(()) >expr >bc,这个是绝对的。

let和$(())运行是内建命令,使用相同的算法。

expr和bc是外部程序,expr的体积几乎等于bc的1/3,执行一次装入内存所消耗的时间就不一样。

从运算能力来说,自然bc排第一位。

其实还有awk,能更好的执行基本运算、汇总、求平均等更复杂的。而且还可以使用数组、哈希表。

expr运算中,运算符两侧都要有空格的,除此格式错误外其他没有错误!

另外,` `内的命令及shell外部命令(如expr)都会新建子shell去执行,开销大。强烈建议用shell内建命令let做基本运算。

number=`expr $number + 1`

sum=`expr $sum + $number`

可以改为:

let number+=1

let sum+=number

let支持C语法运算,变量前可以不加$取值符号;支持使用+=运算符,a+=b等同于a=a+b,可以让代码更简洁高效。

用let时运算表达式如果有空格,要放入双引号中,如:

let sum="sum + number"

出现这种问题是文件没有编译好就运行

先编译文件后运行就不会出现

编译文件两种方法

①gcc filename.c -o file

这里的filename.c是文件名,file是自己给文件filename.c起的别名

② gcc filename.c

运行文件也有两种对应的方法:

①如果用第①种编译方法,则./file 即可

②如果用第②种编译方法,使用gcc filename.c时会在目录出现一个a.out的文件,则./a.out 即可


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/tougao/6075845.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-13
下一篇2023-03-13

发表评论

登录后才能评论

评论列表(0条)

    保存