当前位置:首页 » 语数英语 » shell数学运算

shell数学运算

发布时间: 2021-04-27 03:48:00

1. shell 脚本里面从一个文本里面读出一个数字,如何转换成整数我需要用这个数字进行加减乘除

可以参考下面几种方法:

法一:

echo ${var%.*} #这个是直接去除小数点及后面所有内容,只用于bash

法二:

echo $var | awk -F. '{print $1}' #以小数点为分隔符取第一个字段

法三:

echo $var | awk '{print int($0)}' #awk中可直接使用C函数取整

(1)shell数学运算扩展阅读:

shell脚本

shell script是利用shell的功能所写的一个程序,这个程序是使用纯文本文件,将一些shell的语法与指令写在里面,然后用正规表示法,管道命令以及数据流重导向等功能,以达到我们所想要的处理目的。

更明白地来说,shell script就像早期dos年代的.bat,最简单的功能就是将许多指令汇整写一起,让使用者很容易地就能够一个操作执行多个命令。

2. Linux中编写一个shell程序,读入一组数字,使用for循环计算该数组数字的乘积。

#!/bin/bash
read-p"请输入一组数字:"-aarray
accumulate=1
fornumin${array[@]}
do
accumulate=$(($accumulate*num))
done
echo"乘积是:"$accumulate

计算读入的一组数字(在同一行输入)的积

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

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

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

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

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

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

4. linux的shell脚本编程,求两数字间所有偶数的和,我是小白,不太懂。

错的地方太多了

  1. 每个运算符和数字/变量之间应该有空格,如“1 > 2”

  2. 小于等于不能用“<=”表示,应该用 -le

  3. 使用“>”“<”等运算符时,必须用“[[ ]]”符号扩起来以进行转义(while那里就应该改成 while ( [[ $c -le $b ]] )

我把改好后的贴出来给你看看吧(虽然按照你输入的,一直没运算出结果)

#@/bin/bash
a=$1
b=$2
c=$1
d=0
while([[$c-le$b]])
do
if[[$c%2==0]]
then
d=$c+$d
c=$c+1
fi
done
echo$d

5. shell中将字符串转换成数字

1、数字类型转字符类型

数字类型转字符类型,是比较常见的,也是必须容易实现的。大多时候系统能够自动进行转换,如:

aa=$((1+1));echo $aa

变量aa赋值为整数2,但echo 输出时已被当成字符型。当然也可以强制进行转换,如:

echo $aa""

通过与空字符串进行连接,强化将变量aa转化成了字符型。

6. shell程序编写程序计算一个数中各位数字的和

可以这样写

#!/bin/bash
echo -n "your numnber: "
read num

len=$(echo $num | wc -c)
sum=0
for ((i=1;i<$len;i++))
do
sum=$(($sum + $(echo $num | cut -c $i)))
done
echo "sum of '$num' is $sum"

运行结果:

your numnber: 12
sum of ཈' is 3

在运行一次

your numnber: 1729
sum of 񟨱' is 19

7. linux shell简单计算器 怎样在运行文件时直接运算,怎样判断输入的值为数字

#!/bin/sh
if[$#-ne3]
then
echo"Usage:$0value1operatorvalue2"
elifexpr"$1":'[0-9][0-9]*'>/dev/null&&expr"$3":'[0-9][0-9]*'>/dev/null
then
case$2in
[+/-])res=`expr$1$2$3`
echo"Answeris$res"
;;
X)res=`expr$1*$3`
echo"Answeris$res"
;;
*)echo"operatormustbe+,-,/,X"
;;
esac
else
echo"value1andvalue2mustbenumber"
fi

8. 文本处理问题, shell或者vim, 如何对文本里面的数字做运算

用awk操作吧

9. 编写一个shell程序,计算200以内3或5整数倍的数字的和

#!/bin/sh
a=0
for((i=1;i<=$1;i++))
do
if [[ i%5 -ne 0 ]]
then
a=$((a+i))
fi
done
echo $a

测试结果
$ ./test.sh 100
4000
$ ./test.sh 98
3901

热点内容
如何保养眼部皮肤 发布:2025-02-21 17:59:21 浏览:250
蚕茧怎么处理 发布:2025-02-21 17:19:05 浏览:102
校园一角儿童画 发布:2025-02-21 15:51:37 浏览:936
下载免费英语听力 发布:2025-02-21 15:11:21 浏览:144
小学五年级英语语法 发布:2025-02-21 12:21:58 浏览:94
卖手机在哪里 发布:2025-02-21 12:11:52 浏览:483
师德学习小结 发布:2025-02-21 11:28:49 浏览:550
2017全国二数学卷 发布:2025-02-21 09:54:19 浏览:54
2011海南物理会考答案 发布:2025-02-21 09:51:46 浏览:889
大学综合英语3 发布:2025-02-21 09:40:00 浏览:152