如何从用户提供的输入中打印出偶数。
如何从用户提供的输入中打印出偶数。
我有这段代码,它的作用是:
用户输入最大数,根据输入的数,我想显示所有小于该数的偶数。
#! /bin/bash echo "请输入最大数:" read counter for number in {0.."$counter"} if [ (($number % 2 == 0)) ] then echo "$number" fi
但它不能正常工作。当我从终端调用脚本时,我收到以下错误:
[root@sunshine Desktop]# bash Tester 请输入最大数: 9 Tester: 第9行附近有语法错误,附近的标记意外。 Tester: 第9行: `if [ (($number % 2 == 0)) ]'
文章标题:如何从用户输入中打印出偶数
问题原因:在给定的代码中,忘记了for循环的do和done部分。而且,你不能在{a..b}语法中使用变量。
解决方法:需要将代码改写为计数循环。然后可以每次增加2,这样就不需要检查偶数了。最后,建议将变量重命名为counter和max。
整理后的代码如下:
#!/bin/bash echo "What is your max number:" read max for ((counter = 0; counter < max; counter += 2)); do echo "$counter" done
无法使用{0..$var}的原因是,花括号扩展在参数扩展之前进行,因此在Bash处理它时,这不是一个有效的扩展。可以参考手册获取更多信息。