$(...)
devuelve la salida del comando :las cosas enviadas a stdout. Quiere el código de salida . Después de que un proceso (o, en su caso, la función )finaliza en un script bash, la variable especial $?
se establece en el código de salida.
Así que en lugar de
var=$(_has_string 'string')
...
considerar
_has_string 'string'
var=$?
...