Seu código parece fazer o que você quer, embora readlink -f
não seja POSIX.
Outra boa solução não POSIX seria:
if [ "$(df --output=fstype /etc/mtab | tail -n +2)" = "proc" ]; then
(Isso deve funcionar mesmo se o sistema de arquivos proc não estiver montado em / proc)
Mas talvez no mundo real isso seja suficiente para simplesmente verificar
if [ -L /etc/mtab ]; then
O último é usado até mesmo no util-linux test-suite e eles não receberam nenhum relatório de bug até o momento. Parece que em qualquer distribuição Linux existente / etc / mtab é um arquivo regular ou um link simbólico para / proc / self / mounts.