首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在OSX中,我如何在bash case语句中失败?

在OSX中,我如何在bash case语句中失败?
EN

Stack Overflow用户
提问于 2013-01-31 03:58:59
回答 2查看 3.2K关注 0票数 10

我有一些我想在OSX中运行的bash脚本,但其中一些包含了故障案例终止符';&‘,这似乎在Mac上不起作用。以下是示例代码:

代码语言:javascript
复制
#!/bin/bash
case $1 in
    test)
        echo "go" ;&    
    test)
        echo "go2" ;;
esac

在Cygwin中,.\test.sh测试产生

代码语言:javascript
复制
go
go2

但在OSX上,

代码语言:javascript
复制
./test.sh: line 4: syntax error near unexpected token `&'
./test.sh: line 4: `            echo "go" ;&   
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-31 04:07:29

您的代码在我的ubuntu系统bash 4.2.24上运行正常。

我认为您使用的是bash的早期版本,该版本不支持从Bash4开始添加的;& fall-Through.

来自wikipedia

代码语言:javascript
复制
Fall through is done using ;& (new since Bash 4) whereas ;; acts as a case break.
票数 6
EN

Stack Overflow用户

发布于 2013-01-31 05:29:20

也许你可以试着用/bin/zsh代替/bin/bash?您的示例代码可以在我的MacOS X 10.6.8上使用“zsh 4.3.9”,但不能使用“bash 3.2.48”。

否则,必须以某种方式…重写脚本但是,如果不知道它是做什么的,就很难确切地说出它是如何做到的。根据需要简单地复制代码可能是最简单的选择,在任何情况下都应该有效。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14612580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档