我有一些bash脚本,我想在OSX中运行,但其中一些包含fallthrough案例终结符';&',它似乎不适用于Mac.这是示例代码:
#!/bin/bash
case $1 in
test)
echo "go" ;&
test)
echo "go2" ;;
esac
Run Code Online (Sandbox Code Playgroud)
在Cygwin中,.\ test.sh测试产生
go
go2
Run Code Online (Sandbox Code Playgroud)
但是在OSX上,
./test.sh: line 4: syntax error near unexpected token `&'
./test.sh: line 4: ` echo "go" ;&
Run Code Online (Sandbox Code Playgroud)
您的代码在我的ubuntu系统上工作,bash 4.2.24.
我认为你使用的是早期版本的bash,它不支持;&
从bash 4开始添加的直通.
来自维基百科:
Fall through is done using ;& (new since Bash 4) whereas ;; acts as a case break.
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2848 次 |
最近记录: |