gpt4 book ai didi

linux - Bash 将增量操作解释为命令

转载 作者:太空狗 更新时间:2023-10-29 12:09:58 26 4
gpt4 key购买 nike

我正在尝试使用 bash 脚本批量修改一些图像,并打印出进度。在我看来,bash 正在将增量解释为命令并给出以下错误:

augment_data.sh: line 20: 0: command not found

代码如下:

for file in *.jpg
do
convert $file -rotate 90 rotated_"$file"
((counter++))
if $((counter % 10 == 0)); then
echo "Rotated $counter files out of $num_files"
fi
done

第 20 行是计数器递增操作。

我该如何解决这个问题,以免收到错误消息?

最佳答案

在算术替换中,算术运算的结果被替换到运算本身的位置。

在这种情况下,$(( 1 == 0 ))算术结果为 0 , 和 $(( 1 == 1 ))结果为 1 .

因此,如果您使用 $(( ... )) , 然后这个 01在该位置被替换,因此作为命令运行。由于您没有名为 0 的命令或 1 (可能),其中任何一个都会导致 command not found错误。

如果您使用 (( ... )) ,则运算结果直接设置返回值,不做展开。

关于linux - Bash 将增量操作解释为命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47716448/

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