【发布时间】:2020-11-22 02:20:52
【问题描述】:
在下面的示例中,我想查找句子是否以“ap”开头并以“e”结尾。
示例:a="apple"
if [[ "$a" == ^"ap"+$ ]]
这没有给出正确的输出。
【问题讨论】:
-
建议为您的特定外壳添加标签,可能是
bash或ksh -
less-unix 标签有什么用?
在下面的示例中,我想查找句子是否以“ap”开头并以“e”结尾。
示例:a="apple"
if [[ "$a" == ^"ap"+$ ]]
这没有给出正确的输出。
【问题讨论】:
bash 或ksh
您没有提及您使用的是哪个外壳,但您尝试中的 [[ 表明您使用的是在基础 POSIX sh 语言上扩展的外壳。以下至少适用于bash、zsh 和ksh93:
$ a=apple
$ [[ $a == ap*e ]] && echo matches # Wildcard pattern
matches
$ [[ $a =~ ^ap.*e$ ]] && echo matches # Regular expression - note the =~
matches
【讨论】: