我在这里有这个代码以及它应该做什么:
用户输入最大数量。并根据输入的数字,我想显示该数字之前的所有偶数。
#! /bin/bash
echo "What is your max number:"
read counter
for number in {0.."$counter"}
if [ (($number % 2 == 0)) ]
then
echo "$number"
fi
Run Code Online (Sandbox Code Playgroud)
但它不起作用。相反,当我从终端调用他的脚本时,我收到了这个错误:
[root@sunshine Desktop]# bash Tester
What is your max number:
9
Tester: line 9: syntax error near unexpected token `if'
Tester: line 9: `if [ (($number % 2 == 0)) ]'
Run Code Online (Sandbox Code Playgroud)
你忘记了循环的do和done部分for。无论如何{a..b},不幸的是,您不能使用具有语法的变量。你需要写成一个计数循环。然后你可以增加 2,这消除了对偶数的检查:
for ((number = 0; number < counter; number += 2)); do
echo "$number"
done
Run Code Online (Sandbox Code Playgroud)
最后,我建议将变量重命名为:
counter -> maxnumber -> counter把它们放在一起:
#!/bin/bash
echo "What is your max number:"
read max
for ((counter = 0; counter < max; counter += 2)); do
echo "$counter"
done
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7145 次 |
| 最近记录: |