¿Hay alguna manera de capturar un error de "comando no encontrado" en un script de Ruby? Por ejemplo, dada:¿Captura errores de "comando no encontrado" de los apoyos de Ruby?
output = `foo`
Cómo hacer yo trampa de la situación en la que foo
no está instalado? Esperaba que podría rescue
una excepción, pero esto no parece funcionar en 1.8.7. ¿Hay alguna forma diferente de llamar al subproceso que hará lo que yo quiero? ¿O hay un enfoque diferente?
actualización
Mis disculpas, se me olvidó mencionar un requisito oculto: yo preferiría que el intérprete no se escapa de la línea de comandos para el usuario (que puede contener datos sensibles), de ahí la excepción método de captura es preferido. Disculpas de nuevo por dejar esto fuera la primera vez.
Una táctica que es útil cuando se necesita una característica específica, es para ejecutar una verificación previa, buscar la característica, o aplicación, o código primero, antes de intentar ejecutarlo. Diciendo 'which' foo'' o usando un par de pruebas de archivos para buscar la existencia del archivo más su ejecutabilidad, le dirá si es seguro proceder sin intentar el comando y fallar. Mejora la experiencia del usuario porque puede controlar la forma en que reacciona ante la funcionalidad faltante, y elige una ruta alternativa o notifica al usuario que no puede continuar porque falta algo. –
De acuerdo, pero 'que 'foo'' no es multiplataforma, y no podía pensar en una forma de plataforma cruzada para hacerlo, salvo intentarlo y detectar el error ... – kfb