Bash字符串比较无法匹配

时间:2013-08-14 04:07:31

标签: bash mongodb

我想过滤mongodb中的一些集合以进行导出。但字符串比较似乎不正确。

在我的情况下,{p> $1localhost:17017/mydb

shop是mongodb中的一个集合,但$i == 'shop'永远不会成功。

#!/bin/bash

colls=`mongo $1 --eval 'db.getCollectionNames();' | tail -1`

IFS=',' read -ra ADDR <<< $colls

for i in "${ADDR[@]}"
do
    if [[ $i == 'shop' ]]
    then
        echo $i
    fi
done

或者是否还有其他方法可以从mongodb中导出指定的集合?

1 个答案:

答案 0 :(得分:1)

尝试回应您所获得的值,并查看您应该如何实际使用这些模式。还请正确引用您的变量。使用$()比反引号更好:

#!/bin/bash

colls=$(mongo "$1" --eval 'db.getCollectionNames();' | tail -1)
echo "colls: $colls"

IFS=',' read -ra ADDR <<< "$colls"
echo "colls count: ${#ADDR[@]}"

for i in "${ADDR[@]}"
do
    echo "Trying |$i|."
    if [[ $i == 'shop' ]]
    then
        echo "$i"
    fi
done