O --
diz ao cat
para não tentar analisar o que vem depois dele como opções de linha de comando.
Como exemplo, pense no que aconteceria nos dois casos se a variável $PIDFILE
fosse definida como PIDFILE="--version"
. Na minha máquina, eles fornecem os seguintes resultados:
$ cat $PIDFILE
cat (GNU coreutils) 6.10
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Torbjorn Granlund and Richard M. Stallman.
$ cat -- $PIDFILE
cat: --version: No such file or directory