Bash Shell获得数据的绝对值

Bash Shell获得数据的绝对值,变量中的数值可能是负数,也可能是零或正数。你想得到它的大小(也就是绝对值),但 bash 似乎没有求绝对值的功能。

解决方案

利用字符串操作。

${MYVAR#-}

讨论

这是一种简单的字符串操作。在本例中,# 从字符串起始位置开始搜索负号(-)。如果找到,则将其删除;如果没有找到,就保留原值。不管是哪种情况,最后得到的都是不包含负号的绝对值。

也可以使用if/then/else 按照数学方法来实现。

# 何必费事呢?
if (( MYVAR < 0 ))
then
    let MYVAR=MYVAR*-1
fi

但就像注释中所说,何必呢?字符串操作简洁有力。但考虑到可读性,也可以加上注释。

MYVAR=${MYVAR#-}        # ABS(MYVAR)

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!