【问题标题】:Pattern matching in ksh scriptksh 脚本中的模式匹配
【发布时间】:2014-01-21 23:31:47
【问题描述】:

我在

之类的变量中有一个 URL 参数

a=44&search=My World

这里我想做一个类似的模式匹配

if [ $a =~ "search" ] ;
then
   value=1
else
   value=0

fi

但它在 KSH 脚本中不起作用。

【问题讨论】:

  • 你的意思是说变量$a包含文本44&search=My World并且你想测试它是否包含字符串search

标签: ksh


【解决方案1】:

对于 ksh 正则表达式,您需要 [[,而不是 Bourne shell [。尽管在这种情况下,使用 RE 似乎并不值得。

所以:

if [[ $a =~ "search" ]]
then 
    value=1 
else 
    value=0
fi

【讨论】:

  • 要在 ksh93 中使用像这样的正则表达式,需要丢失右侧的双引号..
【解决方案2】:
found=`echo $a | grep search`
if [ -z $found ]; then
  value=0
else
  value=1
fi

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-16
    • 2014-07-14
    • 2017-11-25
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 2019-01-22
    相关资源
    最近更新 更多