Você tem que citar o argumento para grep: grep "$tdate"
. Isto é
porque $tdate
se expande para duas palavras separadas por espaços em branco, que em
por sua vez, é passado para o grep como dois argumentos, a menos que as aspas duplas sejam adicionadas.
Seu script pode ser melhorado para remover o uso inútil de gato e chamar grep apenas uma vez:
</var/log/secure grep "$tdate.*servername su" >>"$attempted_su_log"