Я пытаюсь понять, почему этот очень простой скрипт не работает:
echo "SomeText" > test if [[ "grep 'FindMe' ./test" ]] ; then echo Why is this line written to screen? fi
Я пробовал с:
"grep 'FindMe' ./test"
$(grep 'FindMe' ./test)
`grep 'FindMe' ./test`
также с большим количеством опций grep.
Я пробовал с [] и [[]] и {} и любой комбинацией.
[]
[[]]
{}
На самом деле, чтобы проверить состояние выхода, не используйте скобки и кавычки:
if grep 'FindMe' ./test ; then
Использование grep -q часто встречается в таких ситуациях, так как мы не хотим, чтобы вывод скрипта был забит случайными совпадениями.
grep -q