Error de secuencia de comandos Bash [:! =: Se esperaba un operador unario

En mi script, bash verificar si el primer y único argumento es igual a -v, pero es un argumento opcional. Uso una statement if pero sigo recibiendo el error esperado del operador unario.

este es el código:

if [ $1 != -v ]; then echo "usage: $0 [-v]" exit fi 

Editar:

Debería ser más específico: esta parte del script anterior está verificando un argumento opcional y luego, si el argumento no se ingresa, debería ejecutar el rest del progtwig.

 #!/bin/bash if [ "$#" -gt "1" ]; then echo "usage: $0 [-v]" exit fi if [ "$1" != -v ]; then echo "usage: $0 [-v]" exit fi if [ "$1" = -v ]; then echo "`ps -ef | grep -v '\['`" else echo "`ps -ef | grep '\[' | grep root`" fi 

¡Citas!

 if [ "$1" != -v ]; then 

De lo contrario, cuando $1 está completamente vacío, su prueba se convierte en:

 [ != -v ] 

en lugar de

 [ "" != -v ] 

… y != no es un operador unario (es decir, uno capaz de tomar un solo argumento).