如何在Bash中执行中间函数

我试图parsing一个string在bash中的文本,然后我可以抛出一个案例select,但我有最大的麻烦,试图找出如何做到这一点。 在VB中,我知道它真的很容易

someString = "Hey there" Select Case Mid(someString,1,5) Case "Hey t" 'Do something Case "Go aw" 'Do something else Case 'Else 'String is unrecognized End Select 

我似乎无法find任何能够显示如何执行与Mid函数等效的string操作函数的任何内容。 我是否使用sed ,我不相信我可以使用awkcut因为我没有试图根据模式修改string,但是在Unix中必须要这么简单。

我不确定我是否理解你的问题,因为我认为“剪切”会按照你的想法工作。

 someString="Hey there" case `echo $someString | cut -c1-5` in "Hey t") echo Do something ;; "Go aw") echo Do something else ;; *) echo String is unrecognized ;; esac 
 someString="Hey there" case "${someString:0:5}" in "Hey t" ) echo Do something ;; "Go aw" ) echo Do something else ;; * ) echo unrecognized ;; esac 

这也可以通过if,elif,else来轻松完成。 $ {someString:0:5}是参数扩展。 在bash手册中了解更多信息,也可以阅读Gregs Bash FAQ#73 。

注意使用剪切的其他答案。 两者都可以工作,但参数扩展速度更快,因为它内置了bash并且考虑了更好的代码。 剪切将有利于剪切多行文本。