用于增加变量值的 Shell 脚本

用于增加变量值的 Shell 脚本

如何制作一个 shell 脚本,每当我运行它时,它都会增加变量的值。假设如果一个变量的值为 5,并且如果我再次运行该脚本,它会在其中增加 1。如果该值超过 100,则会从 100 中减去 50。

答案1

shell脚本是用某种shell语言编写的应用程序,它只能更改自己变量的值,而不能更改其他进程的变量(例如这里的调用者)

如果您想增加 shell 中 shell 变量的值,并且您的 shell 是类似 POSIX 的 shell,则可以使用函数来代替:

incr() {
  var=$((var + 1))
  if [ "$var" -gt 100 ]; then
    var=50
  fi
}

使用类似 Korn 的 shell(ksh、zsh、bash),您可以缩短为:

incr() ((++var <= 100 || (var = 50)))

或者将变量的名称作为参数传递:

incr() ((++$1 <= 100 || ($1 = 50)))

POSIXly:

incr() {
  : "$((($1 = $1 + 1) <= 100 || ($1 = 50)))"
}

¹ 一个例外是 shellfish及其普遍的可以在fish实例之间共享的变量

相关内容