if cat /proc/5589/smaps 2>/dev/null 1>/dev/null; then
echo readable ;
fi
ou para ler menos
if head -n 1 /proc/5589/smaps 2>/dev/null 1>/dev/null; then
echo readable ;
fi
Atualização:
Acho que você precisa combinar as duas verificações no seu script: 1) se [-r / proc / 5589 / smaps] 2) se cat / proc / 5589 / smaps 2 > / dev / null 1 > / dev / null;
Para que primeiro você verifique as permissões de arquivo e verifique o resultado da leitura de um arquivo proc. Por exemplo:
filename="/proc/5589/smaps"
if test -r "$filename" && cat "$filename" 2>/dev/null 1>/dev/null; then
echo readable
else
echo not readable
fi