Es empleado para distinguir variables o bien parámetros de un script. Las variables son remplazadas por su valor, por ejemplo echo $PATH presentará el contenido de la variable PATH. En un script los parámetros se referencian con números, $1 es el primero, $2 el segundo y así sucesivamente. Otros nombre especiales en un script son:
Es remplazado por la cantidad de parámetros que el script recibe.
Que se expande a todos los parámetros que el script haya recibido, un parámetro se separa de otro con el valor de la variable IFS que normalmente es un espacio.
Todo programa al terminar debe retornar un número al sistema operativo, por convención 0 significa operación exitosa y números diferente representan errores. $? se expande al número retornado por el último programa ejecutado en primer plano.
Opciones que se pasaron al script durante su ejecución.
Identificación del proceso del intérprete de comandos.
Identificación del proceso del último comando que se ejecutó en segundo plano.
Nombre del script o del shell.