is_readable /path/to/file é escrito test -r /path/to/file ou [ -r /path/to/file ] ou [[ -r /path/to/file ]] . Veja usando um ou dois colchetes - bash para diferenciar. is_writable usa -w .
Não conseguir acessar um arquivo não é um bom indicador de "precisar de sudo". Pode ser que você execute como um usuário ou grupo diferente, não como root. Pode ser que em um determinado sistema, a maneira de obter acesso root não seja executar sudo , mas algum outro mecanismo ( su , calife ,…). Testar o acesso a um arquivo é bom em um sistema conhecido com uma configuração conhecida. Se você distribuir scripts que fazem isso, lembre-se de que isso é apenas um teste heurístico, não um teste confiável, e deixe o usuário facilmente anular suas decisões.
Note que só porque um arquivo testado como legível não significa que você realmente será capaz de lê-lo. As permissões no arquivo podem ter mudado nesse meio tempo. Às vezes, há discrepâncias entre o que as permissões de arquivo dizem e o que as verificações de acesso realmente fazem: sistemas de arquivos remotos com atributos sofisticados que o sistema de arquivos local não entende, estruturas de segurança como o SELinux, etc.