簡體   English   中英

使用awk在bash中浮動

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM