Bash Shell获得数据的绝对值,变量中的数值可能是负数,也可能是零或正数。你想得到它的大小(也就是绝对值),但 bash 似乎没有求绝对值的功能。
解决方案
利用字符串操作。
${MYVAR#-}
讨论
这是一种简单的字符串操作。在本例中,#
从字符串起始位置开始搜索负号(-
)。如果找到,则将其删除;如果没有找到,就保留原值。不管是哪种情况,最后得到的都是不包含负号的绝对值。
也可以使用if/then/else
按照数学方法来实现。
# 何必费事呢?
if (( MYVAR < 0 ))
then
let MYVAR=MYVAR*-1
fi
但就像注释中所说,何必呢?字符串操作简洁有力。但考虑到可读性,也可以加上注释。
MYVAR=${MYVAR#-} # ABS(MYVAR)
酷客网相关文章:
评论前必须登录!
注册