Если вы используете []
для сравнения, вам нужно использовать =
вместо -eq
. Вам также нужны цитаты.
if [ "$(cat textfile.txt | grep 'search string')" = "" ]; then; echo "some string"; fi;
Обратите внимание, что grep
может принимать имя файла в качестве аргумента, поэтому cat
не требуется. Вы также можете напрямую использовать возвращаемое значение grep
: grep возвращает 1, если строка поиска не найдена.
if [ "$(grep 'search string' textfile.txt)" ]; then
echo "some string";
fi
Еще более компактный способ - использовать логические и &&
.
grep "search string" textfile.txt && echo "some string"