我有一些我想在OSX中运行的bash脚本,但其中一些包含了故障案例终止符';&‘,这似乎在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" ;& 发布于 2013-01-31 04:07:29
您的代码在我的ubuntu系统bash 4.2.24上运行正常。
我认为您使用的是bash的早期版本,该版本不支持从Bash4开始添加的;& fall-Through.
来自wikipedia
Fall through is done using ;& (new since Bash 4) whereas ;; acts as a case break.发布于 2013-01-31 05:29:20
也许你可以试着用/bin/zsh代替/bin/bash?您的示例代码可以在我的MacOS X 10.6.8上使用“zsh 4.3.9”,但不能使用“bash 3.2.48”。
否则,必须以某种方式…重写脚本但是,如果不知道它是做什么的,就很难确切地说出它是如何做到的。根据需要简单地复制代码可能是最简单的选择,在任何情况下都应该有效。
https://stackoverflow.com/questions/14612580
复制相似问题