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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell 脚本里面从一个文本里面读出一个数字,如何转换成整数?我需要用这个数字进行加减乘除相关的知识,希望对你有一定的参考价值。

可以参考下面几种方法:

法一:

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

法二:

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

法三:

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

扩展资料:

shell脚本

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

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

参考资料来源:百度百科-Shell脚本

参考技术A 方法有很多:

var=4.57
法一:
echo $var%.* #这个是直接去除小数点及后面所有内容,只用于bash
法二:
echo $var | awk -F. 'print $1' #以小数点为分隔符取第一个字段
法三:
echo $var | awk 'print int($0)' #awk中可直接使用C函数取整
法四:
echo "scale=0;$var/1"|bc -l #用bc计算
法五:
printf "%.0f\n" $var #这个与上面不同,是四舍五入的本回答被提问者和网友采纳
参考技术B 你可以找下函数 有公式取整数,例如:

Basic函数原型  INT(number)
类别  数学函数
返回值  Integer 类型
作用  求不大于number
的最大整数,Int(3.8)=3,Int(-3.8)=-4。

注意:int不能取整!取整要用fix!

BASIC INT(number)取比number小的最大的整数。INT(1.1)=1
INT(-1.1)=-2。

shell脚本练习题

 

1、一个文本类型文件,里面每行存放一个登录者的IP(某些行是重复的),写一个shell脚本输出登录的次数最多的用户;lp_input.txt的内容假设如下

219.217.49.14

175.43.4.87

87.48.98..1

59.73.38.25

219.217.49.14

59.73.38.142

59.73.38.25

219.217.49.14

#!/bin/bash

#test.sh

Sort ip_input | uniq –c | sort | tail -1 | awk ‘{print $2}’

Sort ip_input | uniq –c | sort -r | head -1 | awk ‘{print $2}’

Uniq –c选项他的作用是将重复的去掉,并且在每行前面添加此行重复次数

Sort 命令的默认排序方式是升序,使用 –r选项逆转排序结果,则出现的次数最多的ip则排在第一行

2、文件的拷贝,在根下创建4个文件m1.txt、m2.txt、m3.txt、m4.txt,用Shell编程,实现自动创建,m1、m2,m3,m4.txt,并将m1.txt, m2.txt、m3.txt、m4.txt,将个文件分别拷贝到各自相应的目录下

思路:用touch创建文件,mkdir命令创建目录,使用while循环依次拷贝,目录和文件表示

第一步#!/bin/bash

第二步cd/(cd到根下)

第三步 touch m{1..4}.txt(创建4个文件)

第四步i=1(设置变量)

第五步while[ #i –le 4 ](利用while设置循环次数)

第六步do(做什么)

第七步mkdir m$i

第八步 cp m$i.txt m$i

第九步i=$((i+1))意思每次复制都加一

第十步done 结束语

4、

判断拷贝

Shell编程,判断一文件是不是字符设备文件,如果是将其拷贝到dev目录下

思路:

使用read命令从键盘上获取的文件名

如何判断是否是字符设备

第一步#!/bin/bash

第二步echo –e “please input filename ”(echo –e激活转义符 换行且将光标移至下一行的行首)

第三步read FILENAME(使用read命令从键盘上获取文件名,read直接给FILENAME赋值   read –t 3指定读三秒)

第四步if [ -c $FILENAME ]

第五步then

第六步 cp $FLIENAME /dev

第七步else

第八步echo “It’s not character device fliename”

第九步fi结束语

4、创建目录

设计一个Shell程序,在/userdata目录下建立50个目录, 即user1~user50,并设置每一个目录权限,其他用户权限为,读;文件的所有者的权限是:读、写、执行;文件的所有者所在的组的权限为:读、执行

思路 while循环生成文件目录

判断/userdata是否存在,如果不存在直接创建子目录,不存在先创建/userdata再创建子目录

权限赋值rwxr-xr—数字方式754

第一步i=1(先取变量值)

第二步while [ $i –le 50 ]

第三步 do

第四步if [ -d /userdata] 判断有没有这个目录

第五步 then

第六步mkdir –p /userdata/user$I

第七步 else

第八步 mkdir /userdata   mkdir –p /userdata/user$i

第九步fi

第十步chmod 754 /userdata/user$i

第十一步 i=$(($i+1))

第十二步 done

 

以上是关于shell 脚本里面从一个文本里面读出一个数字,如何转换成整数?我需要用这个数字进行加减乘除的主要内容,如果未能解决你的问题,请参考以下文章

一个shell脚本 怎么执行多条命令

shell里面的index函数

shell里面的index函数

java,现在有word模板,需要从数据库里面读出数据,填充在word模板里面导出。求一个比较好的解决方案!

Shell实例----------从文件夹里面多个文件里面查找指定内容

shell脚本删除hbase里面的数据(按照rowkey批量删除hbase的数据)