2012-02-24 14 views
6

Tengo un comando de consola de Postgres createdb appname_production_master, que devuelve el código de salida de error si la base de datos con este nombre ya existe.ignorando el código de salida del comando en Linux

¿Es posible hacer que este comando no devuelva ningún código de salida?

Respuesta

18

Simplemente ignore el código de salida, por ejemplo, como este.

createdb appname_production_master || true 
+3

Estrictamente hablando, esto no pasa por alto el código de salida, pero se utiliza en una expresión que siempre tiene éxito. –

+1

"<> ||:" es otra forma que parece funcionar, donde el colon es el comando nulo que siempre tiene éxito – killthrush

1

Los comandos Unix siempre devuelven los códigos de salida, pero no necesita responder al código de salida.

Cuando ejecuta un comando $? se establece en el código de salida del proceso. Como esto ocurre para cada comando, simplemente ejecutar un comando diferente después del primero cambiará $?.

Por ejemplo:

createdb appname_production_master # returns 1, a failure code 
# $? is 1 
/bin/true # always returns 0, success 
# $? is 0 

He aquí otro ejemplo:

/bin/false # returns false, I assume usually 1 
echo $? # outputs 1 
echo $? # outputs 0, last echo command succeeded 
Cuestiones relacionadas