MacOS ZSH 中的 Case 语句存在问题
我正在尝试在 MacOS Monterey 的 ZSH shell 中运行有关“case”语句的练习代码。我的代码并不简单,但简而言之,代码只是接收一个正整数,并且应该传递这些语句之一+最终语句。 这是代码:
#!/bin/zsh
Bin=$(bc <<< "obase=2; $1")
Zeros=0000
Len=${#Bin}
Bin=${Zeros:$len}$Bin
case $Bin in
1[01][01][01]) echo Error type 8 ;;&
[01]1[01][01]) echo Error type 4 ;;&
[01][01]1[01]) echo Error type 2 ;;&
[01][01][01]1) echo Error type 1 ;;&
0000) echo No Error ;;&
*) echo Final Binary: $Bin
esac
但是 shell 给出了这个错误消息:
case.sh:17: parse error near `&'
我试图将 ;;&
更改为 ;|
但它给了我另一个错误消息:
/case.sh:18: parse error near `)'
经过一小时的想来想去,也没有找到解决的办法。
代码的输入:
$ case.sh 5
代码应该返回:
Error type 4
Error type 1
Final Binary:0101
有人可以帮我解决这个问题吗?请?
I'm trying to run an exercise code about "case" statement in the ZSH shell of MacOS Monterey. My code is not simple do describe but, in a nutshell, the code simply receives a positive integer number and should pass one of these statements + the final statement.
Here is the code:
#!/bin/zsh
Bin=$(bc <<< "obase=2; $1")
Zeros=0000
Len=${#Bin}
Bin=${Zeros:$len}$Bin
case $Bin in
1[01][01][01]) echo Error type 8 ;;&
[01]1[01][01]) echo Error type 4 ;;&
[01][01]1[01]) echo Error type 2 ;;&
[01][01][01]1) echo Error type 1 ;;&
0000) echo No Error ;;&
*) echo Final Binary: $Bin
esac
But the shell gives this error message:
case.sh:17: parse error near `&'
I tried to change ;;&
to ;|
but it gives me another error message:
/case.sh:18: parse error near `)'
After one hour of thinking, I couldn't reach a solution.
The input of code:
$ case.sh 5
The code should return:
Error type 4
Error type 1
Final Binary:0101
Can somebody gives me a hand on this? Please?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是我的代码的解决方案:
Here is the solution of my code: