Você pode fazer isso OR usando partes diferentes do comando find
. Considere dividir seus critérios de seleção em três partes: requisitos necessários para todos os arquivos (permissões, etc.) e, em seguida, OU arquivos nomeados OU aqueles com um cabeçalho apropriado.
Isso pode ser expresso com find
como este (dividido em várias linhas aqui apenas para legibilidade):
find . -perm -u+x,g+x,o+x -type f \(
-name '*.sh' -o
-name '*.bash' -o
-exec grep -il -E '^#!/bin/bash|^#!/bin/sh' {} \;
\) 2>/dev/null >/$user_scripts