我有一些我想在 OSX 中运行的 bash 脚本,但其中一些包含 fallthrough case 终止符“;&”,这在 Mac 上似乎不起作用。这是示例代码:
#!/bin/bash
case $1 in
test)
echo "go" ;&
test)
echo "go2" ;;
esac
在 Cygwin 中,.\test.sh 测试产生
go
go2
但是在 OSX 上,
./test.sh: line 4: syntax error near unexpected token `&'
./test.sh: line 4: ` echo "go" ;&
最佳答案
您的代码在我的 ubuntu 系统 bash 4.2.24 上可以正常工作。
我认为您使用的是较早版本的 bash,它不支持自 bash 4 以来添加的 ;&
fall-through。
来自 wikipedia :
Fall through is done using ;& (new since Bash 4) whereas ;; acts as a case break.
关于macos - 我如何在 OSX 的 bash case 语句中失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14612580/