我试图找出在单行 shell 脚本中使用 while 循环和 if 语句检查多个条件的语法。
执行这样的事情...
i=2; while [ $i -le 10 ]; do if [ $i -ne 3 -a $i -ne 5 ] echo $i " not equal to 3 or 5"; else echo $i; i=`expr $i + 1`; done
Run Code Online (Sandbox Code Playgroud)
...我收到错误
bash: syntax error near unexpected token `else'
Run Code Online (Sandbox Code Playgroud)
另一方面,如果我删除...3 or 5"和之间的分号else echo...,并尝试这样的事情......
i=2; while [ $i -le 10 ]; do if [ $i -ne 3 -a $i -ne 5 ] echo $i " not equal to 3 or 5" else echo $i; i=`expr $i + 1`; done
Run Code Online (Sandbox Code Playgroud)
...然后我收到错误:
syntax error near unexpected token `done'
Run Code Online (Sandbox Code Playgroud)
这是在 Ubuntu 14.04 上,以防万一。
我是否可能在某处缺少某种括号,或者是其他什么?
小智 5
这应该有效:
i=2; while [ $i -le 10 ]; do if [ $i -ne 3 -a $i -ne 5 ]; then echo $i " not equal to 3 or 5"; else echo $i; fi; i=`expr $i + 1`; done
Run Code Online (Sandbox Code Playgroud)
这也应该有效:
i=2; while [ $i -le 10 ]; do [ $i -ne 3 -a $i -ne 5 ] && echo "$i not equal to 3 or 5" || echo $i; i=$((i+1)); done
Run Code Online (Sandbox Code Playgroud)
但我不确定只写一行是否有意义
| 归档时间: |
|
| 查看次数: |
26141 次 |
| 最近记录: |