Estoy usando BASH, y no sé cómo encontrar una subcadena. Sigue fallando, tengo una cadena (¿debería ser una matriz?)¿Cómo encontrar la subcadena dentro de una cadena (o cómo grep una variable)?
A continuación, LIST
es una lista de cadenas de nombres de bases de datos, SOURCE
es la respuesta, una de esas bases de datos. A continuación sigue sin funcionar:
echo "******************************************************************"
echo "* DB2 Offline Backup Script *"
echo "******************************************************************"
echo "What's the name of of the database you would like to backup?"
echo "It will be named one in this list:"
echo ""
LIST=`db2 list database directory | grep "Database alias" | awk '{print $4}'`
echo $LIST
echo ""
echo "******************************************************************"
echo -n ">>> "
read -e SOURCE
if expr match "$LIST" "$SOURCE"; then
echo "match"
exit -1
else
echo "no match"
fi
exit -1
También he probado esto, pero no funciona:
if [ `expr match "$LIST" '$SOURCE'` ]; then
Es difícil responder cualquier tipo de pregunta sin saber qué 'LISTA' y 'FUENTE' parecen – SiegeX
posible duplicado de [Cadena contiene en bash] (http://stackoverflow.com/questions/229551/string-contains- in-bash) – sje397
En Bash, casi siempre no hay razón para usar 'expr' que es una utilidad externa. –