对变量执行操作。减去 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 清理。
我有一个问题。我有一个可以正常工作的 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 清理。