导航:首页 > 编程系统 > linuxshell计算

linuxshell计算

发布时间:2023-01-14 16:27:13

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

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

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

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

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

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

⑵ linux shell 计算平均值

1班(class1)的平均值:
awk 'BEGIN{sum=0;num=0}{if($2=="class1"){sum+=$3;num+=1}}END{printf "%f\n",sum/num}' c.txt

2班(class2)的平均值:
awk 'BEGIN{sum=0;num=0}{if($2=="class2"){sum+=$3;num+=1}}END{printf "%f\n",sum/num}' c.txt

3班(class3)的平均值:
awk 'BEGIN{sum=0;num=0}{if($2=="class3"){sum+=$3;num+=1}}END{printf "%f\n",sum/num}' c.txt

⑶ linux shell 如何实现浮点运算

linux shell本身只是一个脚本语言,使用操作系统的命令或已安装的程序进行运算。你出的题咋一看有难度,实际上是个伪命题,只要有个已经安装好的支持高精度浮点运算的支持外部调用的计算器程序,写个shell实现这个命题太简单了。如果只是依赖操作系统内置的计算器,那就复杂很多。需要考虑把数字转成文本,进行截断后,再转成数字,分段进行计算,然后再将结果进行组合,最终结果需要以文本方式输出,理论上也可以实现。

⑷ linux shell 怎么计算设备文件的md5

你好:
linux系统下面(ubuntu、redhat等等)有一个命令是MD5sum,你可以使用md5sum + 文件名,就可以算出来的

⑸ linux shell 怎么计算输入的任意个数的和

sum=0
while [ 1 ]
do
read one
if [ one -eq 0 ]
then
exit
fi
sum=`expr $sum +$one `
done
echo $sum
输入0停止输入,任意多个数,需要有一个标识内来表示数据输入结容束

⑹ 用Linux shell 计算两个时间差

start=`date +%s -d "2011-11-28 15:55:37"`
end=`date +%s -d "2011-11-28 15:55:52"`
echo $(($end-$start))

这个前提是你能拿到开始和结束时间字串的基础上的。

如果你的日志文件输出版格式是上述的话,还权有个方法:
cat 日志文件 | awk '/^000/{
start=$2 " " $3
end=$4 " " $5

stm=mktime(gensub(/[:-]/, " ", "g", start))
etm=mktime(gensub(/[:-]/, " ", "g", end))

print $1 " - " etm-stm
}'

⑺ LINUX shell 遇到的问题。 我想计算1+2+3+4.到100

这里
i
是当做计数器用的,每次循环递增1。r
是当做累加器用的,将
i
的值进行累加。
这里没有用for循环,而是用的while循环,其实是一样的,而且while循环更为通用(sh不支持for循环)。
循环的次数也是有定义的,while
[
"$i"
!=
"100"
]这句就是定义,只要
i
没递增到100,就会一直循环。其实这句从语义上来说是不对的,这里是整数的比较而不是字符串的比较,所以比较符应该用-ne而不要用!=,即,应该写成
while
[
$i
-ne
100
]
下面是个更为简单的实现,你可以体会一下(shell中的变量其实不需要初始化,自有其默认值)。
#!/bin/bash
for
i
in
{1..100}
do
r=$((r+i))
done
echo
$r

⑻ 在Linux下,编写 一个Shell程序,计算磁盘上所有目录下平均文件个数

我想问一下,计算的是根目录文件夹还是还是包含目录下各子文件夹?
如果根目录文件夹比较好写,如果加上子目录。数量太大了。我想了一个思路,不过感觉很笨。
你参考一下吧,
1.统计所有的目录整理成一个目录文件
2.依次按照整理的目录文件开始统计各目录下的文件数,整理成一个统计文件
3.读取统计文件数据开始计算,最后整理出一个平均文件个数的日志。

其实这个题不是很难,看看书完全可以自写,就是比较繁琐。而且测试起来太慢了。
因为需要search整个磁盘。实在懒得写。。不好意思。

⑼ linux shell程序设计,输入n,计算1+1/2+1/3+...+1/n。要求调用bc

[oracle@localhost test]$ cat c.sh
#!/bin/sh
b=0
echo "请出入n的值:"
read n
for ((a=1;a<=n;a++))
do
b=1/$a+$b
done
c=`bc<<!
scale=5
$b
!
`
echo "运算式是:$b"
echo "最后的结果是:$c"

[oracle@localhost test]$ sh c.sh
请出入n的值:
20
运算式是:1/20+1/19+1/18+1/17+1/16+1/15+1/14+1/13+1/12+1/11+1/10+1/9+1/8+1/7+1/6+1/5+1/4+1/3+1/2+1/1+0
最后的结果是:3.59768
[oracle@localhost test]$

⑽ linuxshell怎么计算设备文件的md5

计算设备文件来的md5所要用到的命令源就是 md5sum
man一下md5sum命令,得到md5sum命令的用法:
md5sum [OPTION]… [FILE]…
1、计算指定文件的MD5值(如a.rmvb)
md5sum a.rmvb
输出结果类似如下:
a.rmvb
即计算出的md5值加上文件名

测试了一下,发现这命令算一2G多的电影所用时间不过几十钞,效率还行。
2、计算字符串MD5值(如字符串 “password”)
echo -n “password” | md5sum
输出:

上面echo加 -n的作用是去除串结尾的回车符,因为echo命令默认会添加一回车符。
像如果是:
echo “password” | md5sum
那输出的将会是:

不加-n与加-n结果是不一样的。正确的做法一般是要加-n参数。

阅读全文

与linuxshell计算相关的资料

热点内容
在哪里解压文件第一分卷 浏览:63
奥维使用教程 浏览:324
编程程序怎么转到plc上 浏览:807
文件名冲突但是找不到 浏览:261
上海瑞金医院app下载 浏览:998
qq群里的机器人买武器 浏览:428
捕鱼达人历史版本 浏览:73
mp4视频文件解密软件 浏览:62
多轴编程哪个软件最方便 浏览:27
老平板哪个是显示屏数据线插座 浏览:849
5sing上传音频文件格式 浏览:171
win10输入文件鼠标右键异常 浏览:634
听幼儿故事用什么app 浏览:514
iphone修改音频文件名 浏览:53
国家气象站点数据在哪里下载 浏览:342
网络设置的网站 浏览:914
手机测量放样怎么导数据和线型 浏览:648
企业展示型网站源码 浏览:781
易花花app哪里下载 浏览:323
外国程序员职业生涯长 浏览:709

友情链接