嗨,我有一个命令/功能是一个将用户名分配给变量的脚本
所以:

var1=dedwards torontobgs NJVMTTS2 srounce jstickler
echo $var1 produces >>  dedwards torontobgs NJVMTTS2 srounce jstickler


如何编写命令以查看变量中是否存在用户标识“ NJVMTTS2”?似乎变量被视为一个字符串而不是单个字符串?

我知道这很简单,但是无法正常工作
我想做的如下:

$$ 1中是否存在$ 1(由anther函数传递)
然后做点什么

so if $1 = NJVMTTS2
and if NJVMTTS2 contained in the $VAR1
Then do echo "yes"  else echo "no"

最佳答案

只是标准模式匹配。

var1='dedwards torontobgs NJVMTTS2 srounce jstickler'
if [[ $var1 = *NJVMTTS2* ]]; then
  …
fi


或者,出于便携性:

case "$var1" in
  *NJVMTTS2*) …;;
esac


更新资料

如果NJVMTTS2在参数中,则应引用参数扩展,但必须小心不要引用模式:

case "$var1" in
  *"$1"*) …;;
esac

关于linux - 读取变量并搜索if和then语句以匹配变量中的某些内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23068547/

10-14 19:43