Estoy intentando llamar un script bash desde un script TCL y necesito obtener el estado de salida desde el script bash o al menos pasar algo al script TCL para que Puedo decir si mi script se ejecutó con éxito. ¿Alguna sugerencia?Llamar a un script bash desde un script tcl y regresar y salir del estado
Respuesta
Ver http://wiki.tcl.tk/exec - haga clic en el botón "Mostrar discusión" - hay un ejemplo muy detallado de cómo hacer exactamente lo que está pidiendo. Lo que necesita es sin embargo catch
set status [catch {exec script.bash} output]
if {$status == 0} {
puts "script exited normally (exit status 0) and wrote nothing to stderr"
} elseif {$::errorCode eq "NONE"} {
puts "script exited normally (exit status 0) but wrote something to stderr which is in $output"
} elseif {[lindex $::errorCode 0] eq "CHILDSTATUS"} {
puts "script exited with status [lindex $::errorCode end]."
} else ...
El enlace definitivo es un ejemplo de la documentación de Tcl 8.6: http://www.tcl.tk/man/tcl8.6/TclCmd/exec.htm#M29 –
nice. los documentos de Tcl 8.5 tienen los mismos ejemplos: http://www.tcl.tk/man/tcl8.5/TclCmd/exec.htm#M28 –
Lo que queremos es exec el resultado de los cuales estará en el valor de retorno, se advirtió sin embargo hay un montón de trampas utilizando ejecutivo, sobre todo si lo que necesita hacer ningún complejo citando
Eso es lo que pensé pero no pareció obtener nada cuando intenté obtener el resultado de mi ejecutivo. Intentaría algo como esto: establecer el valor [exec bash script.sh] y el valor no contendría nada independientemente de lo que el estado de las secuencias de comandos fuera? – tgai
Mi experiencia en TCL es limitada a incursionar ocasionalmente. Sin embargo, seguir los enlaces que comienzan con el de la respuesta de @ jk me llevó al this page, que analiza la variable errorCode y cosas relacionadas que podrían ser útiles en esta circunstancia. Aquí está un ejemplo rápido que demuestra el uso de errorCode:
tcl:
set ret_val [catch { exec /bin/bash /path/to/bash_script }]
set errc $errorCode
set ret_val [lindex [split $errc " " ] 2]
puts $ret_val
bash_script, como referencia anteriormente:
#!/bin/bash
exit 42
que condujo a la producción de:
- 1. ¿Cómo llamar comandos bash desde tcl script?
- 2. AutoHotKey: Llamar a un script desde otro script
- 3. ¿Puede un script PHP iniciar otro script PHP y salir?
- 4. ¿Llamar a exiftool desde un script python?
- 5. Ejecutar un script bash desde un script R
- 6. ¿Cómo puedo salir de un script nodeJS desde el script?
- 7. ¿Cómo llamar a un script SQL desde otro script SQL?
- 8. ¿Cómo ejecutas SQL desde un script bash?
- 9. Llamar a un script desde un programa setuid root C - script no se ejecuta como root
- 10. Llamar a una función python desde el script bash
- 11. VirtualEnv iniciado desde un script bash
- 12. Cómo llamar a un script Bash de VBA (Excel)
- 13. Script Bash: uso del comando "script" de un script bash para iniciar sesión
- 14. ¿Cómo ejecutar el script tcl en otro script tcl?
- 15. llamar a un script de matlab en un script
- 16. ejecutando un script bash desde un archivo make
- 17. Cómo ejecutar un script .sql desde bash
- 18. Llamar a un script de Python desde un Applescript
- 19. ¿Cómo ejecutar un script de python desde otro script de python y obtener el código de estado devuelto?
- 20. Ejecutando script bash desde java
- 21. Cómo verificar un script bash si algo se está ejecutando y salir si es
- 22. Bash Script Llama a otro script bash y espera a que se complete antes de continuar
- 23. ¿Cómo llamar a un script de Python desde PHP?
- 24. ¿Cómo llamar a un script de Python desde Perl?
- 25. ¿Cómo puedo escapar de un script PHP a un editor externo y regresar después?
- 26. ejecutar script bash desde php sin esperar
- 27. Compruebe si existe una función desde un script bash
- 28. ¿Cómo se regresa a un script bash de origen?
- 29. Script de Linux para analizar el mensaje telnet y salir
- 30. Salida JSON del script Bash
No es claro si usted está preguntando cómo atrapar un valor de retorno en TCL, o cómo volver a un estado de salida de bash. –
@Simon Hibbs: idealmente me gustaría capturar el estado de salida de mi script bash en tclsh. – tgai