我正在尝试在 bash 中解析一个字符串的文本,然后我可以在其中抛出一个案例选择,但是我在试图弄清楚如何去做时遇到了最大的麻烦。在 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
Run Code Online (Sandbox Code Playgroud)
我似乎找不到任何说明如何执行与 Mid 函数等效的字符串操作函数的内容。我是否使用sed
,我不相信我可以使用,awk
或者cut
因为我不想根据模式修剪字符串,但肯定它必须在 Unix 中一样简单。
someString="Hey there"
case "${someString:0:5}" in
"Hey t" ) echo Do something ;;
"Go aw" ) echo Do something else ;;
* ) echo unrecognized ;;
esac
Run Code Online (Sandbox Code Playgroud)
这也可以通过 if、elif、else 轻松完成。${someString:0:5} 是参数扩展。从 bash 手册中的部分以及Gregs Bash FAQ #73 中了解更多信息。
请注意使用 cut 的另一个答案。两者都可以工作,但是参数扩展更快,因为它内置于 bash 并被认为是更好的代码。cut 适合切割多行文本。