擅长:python、mysql、java
<p>因为shell本身不能对浮点数执行操作
<a href="https://www.gnu.org/software/bc" rel="nofollow noreferrer">bc</a>通常用于此目的
意图在您的情况下,它将是:</p>
<pre class="lang-sh prettyprint-override"><code>#!/usr/bin/env bash
val=0.999
if [ "$(bc <<< "$val < 1")" -eq 1 ]
then
echo less than 1
fi
</code></pre>
<p>由于您特别询问了Perl/Python,因此
在Python中可以做到这一点:</p>
<pre class="lang-sh prettyprint-override"><code>#!/usr/bin/env bash
val=0.999
if [ "$(python3 -c "print(1) if $val < 1 else print(0)")" -eq 1 ]
then
echo less than 1
fi
</code></pre>
<p>最后,Perl:</p>
<pre class="lang-sh prettyprint-override"><code>#!/usr/bin/env bash
val=0.999
if perl -e'exit $ARGV[0] < 1' "$val"
then
echo less than 1
fi
</code></pre>