2016-11-22 49 views
-2
a=4; 
b=7; 
c=5; 

x =[ a-b ] 
if (x -gt c) then { 
    echo "x is greater" 

    } else { 
    echo " something" 
    } 

我想比较xc忽视的c负数前缀负数前缀。bash脚本忽略了负数

+3

你的意思是像比较绝对值?另外,当你的代码示例不是bash脚本时,为什么你的问题用'bash'标记? – Aserre

+2

请看看:http://www.shellcheck.net/ – Cyrus

+0

我不认为你是在写bash的人。 – dood

回答

1

我假设你的意思是“负号前缀x”。你的代码中有很多错误,你确定你是用bash写的吗?

#!/bin/bash 

typeset a=4 b=7 c=5 

x=$((a - b)) 
x=${x//-/} 

if [[ x -gt c ]]; then 
    echo "x is greater" 
else 
    echo " something" 
fi 
+0

'bash'实际上是非常强类型的;它只有*一个*类型:字符串。代替多种类型,它具有不同的运算符,将*字符串解释为不同的值。例如,'-gt'将其参数视为整数,而'>'将其参数视为字符串。 – chepner

+0

@chepner我明白了,很高兴知道,谢谢。 – dood