首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将“空格”和“或”条件与bash脚本匹配?

如何将“空格”和“或”条件与bash脚本匹配?
EN

Stack Overflow用户
提问于 2018-04-10 08:13:56
回答 1查看 64关注 0票数 1

我想在bash中匹配一个包含字符串中的“空格”和"OR“条件的条件。我无法执行新的shell脚本编写,请帮助它转到其他循环中,它将匹配${myarrlin1}。我得到了"Centrify是残疾人“,但我希望条件是真实的这里。这是我的代码:

代码语言:javascript
复制
FILE_CENT="/etc/nsswitch.conf" 
OS=`uname`    
if [[ $OS = 'Linux' ]]; then
 if [[ -e $FILE_CENT ]]; then
echo "nsswitch.conf found, Proceeding further..."
  while read -r LINE
  do
  if [[ $LINE =~ ^passwd ]]; then
  myarrlin=($LINE)
    if [[ ${myarrlin[1]} =~ ^(centrify)|(centrifydc)[[:space:]]* || ${myarrlin[1]} =~ [[:space:]]+(centrify)|(centrifydc)[[:space:]]* ]];  then
     echo "Centrify is enabled"
     else
     echo "Centrify is disabled"
    fi
  fi
  done < $FILE_CENT
else
echo "nsswitch.conf does not exist in $OS, cannot fetch CENTRIFY information!"
 fi 
fi

nsswitch.conf >>>

代码语言:javascript
复制
passwd:     centrify files
  or
passwd:     centrifydc files
  or
passwd:     files centrify
  or
passwd:     files centrifydc
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-10 10:27:08

你为什么要这么做:myarrlin=($LINE)

如果您只想知道这条线是否包含centrify:

代码语言:javascript
复制
  while read -r LINE
  do
  if [[ ${LINE} =~ ^passwd ]]; then
    if [[ ${LINE} == *"centrify"* ]];  then
     echo "Centrify is enabled"
    else
     echo "Centrify is disabled"
    fi
  fi
  done < $FILE_CENT
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49748601

复制
相关文章

相似问题

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