Proporcione el valor pnetworkingeterminado si el command regresa con un código de salida distinto de cero

Tengo alguna configuration en la configuration de files y me gustaría get ese file. Sin embargo, a veces la config no existe. En este caso, me gustaría que mi command muestre un valor pnetworkingeterminado.

Tal vez algo que funcionó así:

 $ ls $ cat config || echo 42 42 $ echo 73 > config $ cat config || echo 42 73 

Tu construcción está bien. Incluso podrías hacer algo como

 cat config || cat defaultconfig 

Si utiliza algún command aleatorio (como ./get_config_from_web en los comentarios), deberá asegurarse de que el command proporcione un estado de devolución razonable. Eso puede ser complicado, los scripts de shell simplemente devuelven el resultado del último command ejecutado, tendrías que hacer una exit si quieres algo más como resultado.

Lo siguiente tendrá un eco de 42 para cualquier condición de error no capturada:

 trap "echo 42" ERR 

Puedes hacer de esto una variable configurable:

 trap 'echo "${CONFIG:=42}"' ERR # if $CONFIG is not set, it will be defaulted to 42 
 if [ -a config ]; then cat config; else echo ${DEFAULT};fi 

asumiendo que la variable DEFAULT está configurada de antemano.

Puede usar el código de salida en una statement if:

 #!/bin/bash cat config if [[ "$?" -ne "0" ]]; then echo "VALUE" fi 

Si el command anterior tiene éxito, saldrá con un valor "0". Entonces le está diciendo que en cualquier otra salida (fallas) dará como resultado lo que esté en el "VALOR".