Использование сценариев bash Как проверить, находится ли строка внутри другой строки

334
user3541631

Я использую скрипты bash для выполнения psql(базы данных) команд:

Команда возвращает ответ, который содержит или нет имя базы данных / таблицы.

Как я могу проверить, находится ли моя база данных / таблица в возвращенном ответе? Псевдо:

VAR_EXIST=$(command) if $DATABASE_NAME in VAR_EXIST then VAR_EXIST= true 
1
Ответ на StackOverflow в https://stackoverflow.com/q/229551/1540660 Art Gertner 6 лет назад 2
@ArtGertner добавь это как ответ здесь - конечно, отдавая должное :) bertieb 6 лет назад 0
2562 возражений ??? fixer1234 6 лет назад 0

1 ответ на вопрос

2
Art Gertner

Ответ взят из: https://stackoverflow.com/q/229551/1540660

string='a needle in a haystack' if [[ $string = *"a needle"* ]]; then echo "It's there!" fi 

Обратите внимание, что пробелы в строке иглы должны быть помещены между двойными кавычками, а подстановочные знаки * должны быть снаружи.

Адаптировано к вашему случаю:

VAR_EXIST=$(command) if [[ $VAR_EXIST = *"$DATABASE_NAME"* ]]; then echo "DB exists!" fi