在bash中打印素数

在bash中打印素数

你好,我是编程新手,目前正在学习 bash 脚本。请帮助解决此错误“第 28 行:预期`)'”

下面给出的是我的程序。

read -p "enter the number:" a
while [[ $a -le 100 ]]
do
echo "$a"
if [[ (($a-1) % 2) -eq 0 ]]
then
((a++))
fi
done

答案1

bash 使用算术评估$(( ... )),因此您的测试需要

if [[ $((($a-1) % 2)) -eq 0 ]]; then ...

但变量扩展隐含在算术上下文中,因此您可以将其写为

if [[ $(((a-1) % 2)) -eq 0 ]]; then ...

然而,这里实际上不需要外部测试括号,因为您可以直接使用算术表达式的状态:

if (( (a-1) % 2 == 0 )); then ...

相关内容