你好,我是编程新手,目前正在学习 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 ...