O hífen parece ser um recurso específico do Busybox (assim como "askfirst", que foi como descobri que você está usando o Busybox). O arquivo exemplo inittab diz:
# /bin/sh invocations on selected ttys
#
# Note below that we prefix the shell commands with a "-" to indicate to the
# shell that it is supposed to be a login shell. Normally this is handled by
# login, but since we are bypassing login in this case, BusyBox lets you do
# this yourself...
#
# Start an "askfirst" shell on the console (whatever that may be)
::askfirst:-/bin/sh
Então, ele inicia o shell como um shell de login (começando por argv [0] com um hífen). O que um shell de login significa está além do escopo desta questão, mas geralmente significa que ele executará arquivos de inicialização diferentes (por exemplo, ~/.profile
).
A convenção de usar um hífen em argv [0], em vez de um sinalizador de linha de comando apropriado, para informar ao shell que é um shell de login, é uma convenção antiga - ela remonta a pelo menos o Second Edition UNIX. (argv [0] foi simplesmente "-"
para shell de login até a Sexta Edição, depois foi alterado para "-/bin/sh"
)