Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用awk在bash中浮动_Bash_If Statement_Awk - Fatal编程技术网

使用awk在bash中浮动

使用awk在bash中浮动,bash,if-statement,awk,Bash,If Statement,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 您可以通过以下方式使用bash计算器()而不是使用awk: var=5.5

这只是我正在尝试做的事情的一个例子。基本上,我有一个脚本,它必须根据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

您可以通过以下方式使用bash计算器()而不是使用awk:

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

您可以通过以下方式使用bash计算器()而不是使用awk:

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

要将浮动与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和不同的返回代码进行比较,请执行以下操作:

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

版本号通常不是浮点值。它们是由句点连接的多个整数,例如5.6.1。我知道我有一个截断它的变量
MYSQL\u VER=$(MYSQL-V | awk'{print$5}'| cut-d','-f1 | cut-c-3)
版本号通常不是浮点值。它们是由句点连接的多个整数,例如5.6.1。我知道我有一个截断它的变量
MYSQL\u VER=$(MYSQL-V | awk'{print$5}'| cut-d','-f1 | cut-c-3)