gpt4 book ai didi

linux - Bash 脚本错误,应为整数表达式

转载 作者:太空宇宙 更新时间:2023-11-04 10:40:08 27 4
gpt4 key购买 nike

我收到一条错误提示

"line 6: [: : integer expression expected"

而且我不知道该怎么做才能修复它。我正在尝试编写一个脚本来打印出 200 个方程式,方程式的形式应为“i * j = k”,其中 i 是 1 到 10 之间的整数,j 是 1 到 20 之间,k 是 i 的乘积和j。

#!/bin/bash

for i in {1..200..1}
do

if [ "$i" -gt 0 ] && [ "$i" -lt 11 ] && [ "$j" -gt 0 ] && [ "$j" -lt 21 ]
then
i = 1
j = 1
k = $(($i * $j))
echo $i * $j = $k
((i++))
((j++))
fi
done

最佳答案

在您的脚本中,ij 都被初始化为 1,这意味着您的整个循环回显 1 * 1 = 1, 200 次。此外,j 未在您的 if 语句第一次测试 $j 时定义,因此您收到错误消息 "line 6: [::integer expression expected"

打印 200 个方程的一种方法,使用 ij 的组合,其中 i 是 1 到 10 之间的整数,并且 j在1到20之间,如下:

#!/bin/bash

for (( i = 1; i <= 10; i++ )); do
for (( j = 1; j <= 20; j++ )); do
k=$(( i * j )) # Note no space before/after equal sign
echo "$i * $j = $k" # Note the quotation mark
done
done

或者你可以用不同的格式做同样的事情,如下所示:

#!/bin/bash

for i in {1..10}; do
for j in {1..20}; do
k=$(( i * j ))
echo "$i * $j = $k"
done
done

这样,ij 都会在执行任何语句之前进行初始化,并且您可以在循环内对两者设置最大和最小限制。

关于linux - Bash 脚本错误,应为整数表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35494544/

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