shell中将字符串转换成数字

我有一个字符串“96.56”,怎样才能将它转换成一个小数,或者是一个整数96也行。... 我有一个字符串“96.56”,怎样才能将它转换成一个小数,或者是一个整数96也行。 展开
 我来答
xiawei123
高粉答主

2019-09-14 · 每个回答都超有意思的
知道答主
回答量:1626
采纳率:100%
帮助的人:44.8万
展开全部

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 秒后的时间以格式字符输出。

百度网友5311d79
推荐于2017-09-27 · TA获得超过1.9万个赞
知道大有可为答主
回答量:6356
采纳率:71%
帮助的人:3140万
展开全部

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"}'
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式