shell中将字符串转换成数字

我有一个字符串“96.56”,怎样才能将它转换成一个小数,或者是一个整数96也行。

1、数字类型转字符类型

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

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

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

echo $aa""

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

2、上面的方法也同样适用于各种浮点数类型转字符类型。如:

 aa=$(awk 'BEGIN{print 7.01*5-4.01 }');

echo $aa;

echo $aa"";

变量aa是算式(7.01*5-4.01 )的值,是个浮点数,可看到成功转化成字符。

3、字符类型转数值类型

反过来,字符类型转数值类型也是可以实现的。

如:

aa=12;

aa=$(($a+4));

echo $aa;

在shell中,给变更赋值中的数字默认是被当作字符串的。

4、日期型转数值

日期型转数值主要是通过date命令来实现来的。

命令:date -d "2018-07-24" +%s

参数“%s”的作用是将-d参数后的日期转换成自UTC 时间 (1970-01-01 00:00:00) 以来所经过的秒数。

5、日期型转字符

要日期型转数值差不多,也是通过date命令来实现来的

date -d "2018-07-24 12:00:25" +%Y-%m-%d

将-d参数后的时间,按照“%Y-%m-%d”格式输入字符串。

6、数值转日期

日期型的转换,都可以通过date命令来完成。

 date -d @1538617600 +%Y-%m-%d

通过-d将自UTC 时间 (1970-01-01 00:00:00) 以来所经过的1538617600 秒后的时间以格式字符输出。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-27

shell中无需转换,可以直接用作数字。

转换成整数:

# echo "96.56"| awk '{print int($0)}'
96

追问

那如果我要将“.21”(这是从文件中读出来的,表示0.21)拿来与1比较大小,写在if判断中,我该怎么做?

追答

shell中的test语句只能用于整数判断,要判断小数用awk吧,awk中是C语言环境:

var=.21
var="0"$var
echo $var | awk '{if($0 < 1) print "Less than 1"; else print "No less than 1"}'

本回答被提问者采纳

shell中将字符串转换成数字
在shell中,给变更赋值中的数字默认是被当作字符串的。4、日期型转数值 日期型转数值主要是通过date命令来实现来的。命令:date -d "2018-07-24" +%s 参数“%s”的作用是将-d参数后的日期转换成自UTC 时间 (1970-01-01 00:00:00) 以来所经过的秒数。5、日期型转字符 要日期型转数值差不...

《Jenkins Tips 002》 处理 Shell 返回的字符串成字符数组
首先,通过 Shell 语句筛选出需要的用户信息,例如:shellCommand = "echo 'user1 user2 user3' | grep -oE '\\buser[1-3]\\b'"这样,shellCommand 就会返回一个只包含 user1、user2、user3 的字符串。接下来,在 Jenkinsfile 中,利用 Groovy 脚本将这个字符串转化为字符数组:def users = she...

Shell 字符串相关操作
将两个或多个字符串连接起来,可以使用连接符。将字符串转换为数字进行运算,首先使用数字转换函数,之后再进行运算。替换字符串中的指定字符,使用${parameter\/pattern\/string}命令,将parameter中与pattern匹配的最长串替换为string。删除字符串中的空白符,可以使用替换字符串的方法,将空格和换行符替换为空...

Linux shell中如何把用户输入的一串数字(如电话号码)从字符串转换成数值...
shell脚本对变量类型没有限制,你输入数字,phone就可以直接当数值型来用。只是这里的判断表达式中不支持直接正则匹配,你要用grep, sed, awk这些支持正则的工具才行,然后用 $? 取得执行状态来判断是否匹配成功。read -p "Phone Number (xxxxxxxx):" phone echo "$phone" | egrep "^[0-9]{8}$...

unix shell中转换字符串为数字
使用shell内建命令let就行 let t1=a*60+b或者为了美观加点空格:let t1="a * 60 + b"let t1="$a * 60 + $b"$(( ))也很方便,缺点是非通用,可移植性不强,仅bash支持,不属于POSIX标准范畴;而且会新建shell执行,效率上不如直接使用shell内建命令高(当然,如果脚本不大,这种效率上的...

linux,shell如何把字符串变成数组?
echo $url | cut -d , -f 1 cut是切割命令,-d表示分隔符,这里是逗号,-f表示取第几个,这里是第一个 注意和数组不一样,数组是取第0个。

linux,shell如何把字符串变成数组?
url='A B C'a=($(echo $url))echo ${a[1]} B echo ${a[0]} A

shell 从字符串中取出整数
! \/bin\/sh x="84 \/\/ the number of people"echo $x|grep -o '[0-9]\\+'这是把其中数字提取出来的命令,当然现在是字符型的,如果你想赋值为整形的话加条命令就成

写一个shell脚本,将输入的字符串反转过来显示。即如果输入的字符串是...
首先,命令rev可以实现.echo "12345"|rev 其次可以自己编写纯bash脚本来实现 脚本 rev.sh 内容如下 !\/bin\/bash str=$1;len=${#str};for((i=len;i>-1;i--))do echo -n "${str:i:1}"done echo 命令行: bash rev.sh "想反序的字符串"源代码在:http:\/\/www.zhangyan.name\/fbtopic...

shell 字符串转换数字。
{{a}}

相似回答