对变量执行操作。减去 1

Perform an operation to a variable. Subtracting 1

我有一个问题。我有一个可以正常工作的 bash 脚本。

    while read val1 val2 val3
    do
    echo "ncap2 -Oh -s'TOPOBATHY(($val1,$val2))=$val3.'"
    done < $tmpdir/tmp1 > $tmpdir/tmp2

我只想对val1和val2进行一次运算,减1。我尝试直接减去,但是没有用。有没有办法做到这一点。预先感谢您的帮助!

    while read val1 val2 val3
    do
    echo "ncap2 -Oh -s'TOPOBATHY(($val1-1),($val2-1))=$val3.'"
    done < $tmpdir/tmp1 > $tmpdir/tmp2

您可以使用 this syntax

对 Bash 内的变量执行(整数)算术运算

对于您的具体情况,您可以在 echo:

中调用它们之前设置变量的新值
val1=$((val1 - 1))

或者您可以将其内联:

echo "ncap2 -Oh -s'TOPOBATHY($((val1 - 1)),$((val2 - 1 )))=$val3.'"

当然,您目前依赖于用户输入合适的值,因为您提供的示例中没有 error-checking/input 清理。