Как отмечено в комментариях, сначала проверьте, является ли $1
файлом или строкой, затем используйте соответствующую команду grep
:
#!/usr/bin/env bash
if [[ -f "$1" ]]; then
grep -io $2 "$1" | wc -l # If $1 is a file
else
grep -io $2 <<< "$1" | wc -l # If $1 is a string
fi