我对在 Bash 中更好地实现“反向符号”功能很感兴趣。我知道我可以这样做:
"$(($1 * -1))"
Run Code Online (Sandbox Code Playgroud)
但这会产生一个没有符号的正数,但我需要有符号的返回值:
"$((-1 * -1))" == 1 # but I need '+1'
Run Code Online (Sandbox Code Playgroud)
我目前的版本是:
# Reverts the +/- operators for an integer argument.
#
# $ polarize -1 # +1
# $ polarize +12 # -12
# $ polarize 2-2 # 2-2
# $ polarize - 1 # - 1
#
function polarize() {
[ $# -eq 0 ] && return
if [[ "$@" =~ ^-([[:digit:]]+)$ ]]; then
echo -n "+${BASH_REMATCH[1]}"
elif [[ "$@" =~ ^\+([[:digit:]]+)$ …Run Code Online (Sandbox Code Playgroud)