gpt4 book ai didi

linux - Bash 脚本递增变量,但抛出错误

转载 作者:太空狗 更新时间:2023-10-29 11:32:06 24 4
gpt4 key购买 nike

我正在尝试以 50 为增量处理一些文件。它似乎有效,但我收到一条错误消息,指出找不到该命令。

文件 sleepTest.sh:

#!/bash/bin

id=100

for i in {1..5}; do
$((id+=50))

sh argTest.sh "$id"
sleep 2

done

文件 argTest.sh:

#/bash/bin

id=$1
echo "processing $id..."

输出是

sleepTest.sh: line 6: 150: command not found
processing 150
sleepTest.sh: line 6: 200: command not found
processing 200
sleepTest.sh: line 6: 250: command not found
processing 250
sleepTest.sh: line 6: 300: command not found
processing 300
sleepTest.sh: line 6: 350: command not found
processing 350

很明显,我递增 $id 的方式存在问题,但它仍在这样做。为什么?以及如何增加 $id。我简单地尝试了 $id+=50,但这根本不起作用。

最佳答案

省略 $

((id+=50))

((...)) 执行算术运算。 $((...)) 执行算术并将结果捕获为字符串。如果你执行 echo $((...)) 就没问题,但如果你只写 $((...)) 那么 shell 会处理那个数字作为要执行的命令的名称。

var=$((21 + 21))     # var=42
echo $((21 + 21)) # echo 42
$((21 + 21)) # execute the command `42`

关于linux - Bash 脚本递增变量,但抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30382091/

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