繁体   English   中英

在Shell脚本中的Math表达式中使用变量值

[英]Use variable value in a Math expression in Shell Scripting

我正在尝试在循环内的另一个数学表达式中的FOR循环中使用迭代计数器的值。 示例代码:

#! /bin/bash

for i in {100..1}
do
    j=$($i-1)
    echo $i $j
done

但是,这不起作用。 我想获得如下所示的输出:

100 99
99 98

等等。

尝试这个:

for i in {100..1}
do
    j=$(($i-1))  <- Here is the change.
    echo $i $j
done

您必须加倍括号:

j=$(( $i-1 ))

要么 :

j=$(( i-1 ))

此语法有效:

$[ $i-1 ] 

但是你应该避免它。 它已被弃用,并将在即将发布的Bash版本中删除。

此外,您可以减少:

j=i
echo $i $(( --j ))

有关Bash中计算的更多信息:

https://www.shell-tips.com/2010/06/14/performing-math-calculation-in-bash/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM