gpt4 book ai didi

linux - Bash 脚本 : $x=$x+2 is not getting recognised

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:19:26 27 4
gpt4 key购买 nike

当我执行以下脚本时,出现以下错误:-
该脚本无限执行,每次都会打印下一行。 “第 9 行:1=1+2:未找到命令”。为什么?

#!/bin/bash

echo "Script 1 - Linux Scripting Book"
x=1

while [ $x -le 45 ]
do
echo x : $x
$x=$x+2
done

echo "End Of Script 1"

exit 0

此外,如果我将 $x=$x+2 更改为 x+$x+2,那么我也会收到以下错误。

line 6: [: 1+2: integer expression expected

像这样执行时相同的脚本运行正常。

#!/bin/bash

echo "Script 1 - Linux Scripting Book"
x=1

while [ $x -le 45 ]
do
echo x : $x
let x=x+2
done

echo "End Of Script 1"

exit 0

最佳答案

你得到 line 9: 1=1+2: command not found 因为 1=1+2$x=$x+2扩展 成。

使用 exprlet((...)) 进行整数计算,使用 bc 进行浮点运算点:

let x=x+2
((x=x+2)) #same as above
((x+=2)) #same
((x++)) #if adding just one
((++x)) #if adding just one
x=$((x+2))
x=`expr $x + 2` #space before and after +
x=$(echo $x+2|bc) #using bc
x=$(echo $x+2.1|bc) #bc also works with floating points (numbers with decimals)

关于linux - Bash 脚本 : $x=$x+2 is not getting recognised,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49462521/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com