小编ser*_*hei的帖子

在 Bash 中更好地实现反向符号

我对在 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)

bash shell-script

0
推荐指数
1
解决办法
102
查看次数

标签 统计

bash ×1

shell-script ×1