Bash 脚本 - 变量和 | 问题公元前

Bash Script- Issue with variables and | bc

所以我有一个变量,我想在 if 语句中与另一个数字进行比较。

b=8.25
if [ $(echo "$b < 10" | bc) -ne 0 ]; then
echo "hey"
fi

我收到以下错误

(standard_in) 1: syntax error

我知道问题是里面有 b 变量,我怎样才能让它保持在那里?

请帮忙

将比较结果单独存储在一个变量中

b=8.25

# Capture output outside the if
comparison=$(echo  "$b < 10" | bc)

# Use the output in the if
if [ $comparison -ne 0 ]; then

    echo "hey"
fi

您的脚本文件可能具有 DOS 风格的 CRLF 行结尾:

$ b=8.25
$ if [ $(echo "$b < 10" | bc) -ne 0 ]; then
> echo "hey"
> fi
hey

$ b=$'8.25\r'
$ if [ $(echo "$b < 10" | bc) -ne 0 ]; then
> echo "hey"
> fi
(standard_in) 1: illegal character: ^M
bash: [: -ne: unary operator expected

运行 dos2unix 在你的脚本文件上。