首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ksh正则表达式错误‘=~’意外

ksh正则表达式错误‘=~’意外
EN

Stack Overflow用户
提问于 2014-11-11 23:54:20
回答 1查看 2.2K关注 0票数 1

我有一个rpm规范,它在%预部分中运行一些测试。

我正在使用AIX5.3和。

我的脚本从ps、foo和foobar (我只想要foo)中看到一些东西,然后测试每个值,看看它是否与模式匹配。

然而,代码

代码语言:javascript
复制
if [[ $x =~ foo$ ]]; then echo match fi

返回错误=~意外

男人说string =~ ere

如果字符串匹配模式~(E)ere,其中ere是扩展的正则表达式,则为True。

所以看来=得到了支持。

我做错什么了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-11 23:58:39

您根本不需要对正在执行的操作进行正则化(检查字符串是否有给定的后缀)。

代码语言:javascript
复制
if [[ $x = *foo ]]; then echo match; fi

...provides等价行为

代码语言:javascript
复制
if [[ $x =~ foo$ ]]; then echo match; fi

当然,...but在没有后一种特性的shell上工作。

如果您确实希望在=~中使用[[ ]],那么请确保您正在运行ksh93;AIX上的默认ksh是一个更老的实现。

要运行ksh93,请使用#!/usr/bin/ksh93 (而不是#!/usr/bin/ksh )启动脚本。

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

https://stackoverflow.com/questions/26876809

复制
相关文章

相似问题

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