[英]Float in bash using awk
这只是我正在尝试做的事情的一个例子。 基本上,我的脚本必须根据MySQL的版本在if
语句中执行代码。 为了测试,我在下面有这个。 我知道bash不会浮动,所以我要使用awk
。 谁能帮助完成这项工作?
#!/bin/bash
var=5.5
mysqlV=5.6
if awk '{print $var > $mysqlV}'; then
result=1
else
result=0
echo $result
fi
要将浮点数与awk,bash和不同的返回码进行比较:
var="5.5"
mysqlV="5.6"
if awk -v var="$var" -v mysqlV="$mysqlV" 'BEGIN{if (var>mysqlV) exit 0; else exit 1}'; then
echo "larger"
else
echo "smaller"
fi
输出:
smaller
较短的版本:
if awk -v var="$var" -v mysqlV="$mysqlV" 'BEGIN{exit(var>mysqlV)?0:1}'; then
除了使用awk之外,还可以通过以下方式使用bash计算器( bc ):
var=5.5
mysqlV=5.6
a=`echo $var'>'$mysqlV | bc -l`
echo $a
> 0
var=5.8
a=`echo $var'>'$mysqlV | bc -l`
echo $a
> 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.