变量包含变量

时间:2017-08-15 19:47:54

标签: bash echo ifs

我尝试过几件事,但无法让它发挥作用。

我有一个数组元素,我想检查它是否包含变量

contains() {
string="$1"
substring="$2"
if test "${string#*$substring}" != "$string"
then
    return 0    # $substring is in $string
else
    return 1    # $substring is not in $string
fi
}

help=()
help+="this is a test"
i="test"

test=$(contains ${help[0]} $i)

if [[ $test == 0 ]];then
    echo ${help[0]}
fi 

我需要知道$ {newpool [$ a]}是否包含$ pool

我还尝试了一种我发现使用函数发布的不同方法,但它不起作用

putInt

1 个答案:

答案 0 :(得分:1)

使用bashisms:

contains() {
  local string=$1 substring=$2
  [[ $string = *"$substring"* ]]
}

在POSIX中:

contains() {
  string=$1; substring=$2
  case $string in
    *"$substring"*) return 0;;
    *)              return 1;;
  esac
}

在任何一种情况下:

if contains foobar oo; then  echo "foobar contains oo"; fi
if contains foobar baz; then echo "foobar contains baz"; fi

将仅正确地发出foobar contains oo