o parâmetro -ne
é válido apenas para números, você tem que usar !=
para comparação de strings.
Isso funciona:
if [ $# -ne 2 ] ; then
if [ "$1" != "--help" ]; then
echo "ERROR: wrong number of parameters"
echo
fi
echo "Syntax: $0 foo bar
exit 1
fi