Вы можете перенаправить все ошибки из grep, например:
grep "$1" $2 2>/dev/null
(2>
означает стандартную ошибку перенаправления, в отличие от стандартного вывода с >
или 1>
).
Однако это приводит к состоянию гонки: если файл исчезает во время работы сценария, он может все еще существовать, если вы проверите его, но он исчезнет к моменту запуска grep
.
Вы могли бы справиться с этим, проверив состояние выхода ...
grep "$1" $2 2>/dev/null
if [[ $? -gt 1 ]]; then
echo "grep failed unexpectedly" >&2
fi
ИМХО, в этом примере было бы лучше просто позволить grep
напечатать ошибку.