En mi código estoy usando variables de entorno, pero si (env.var) no existe, aparece el mensaje de error NAME_ENV_VAR: no existe tal variable, y mi script deja de ejecutarse. Por ejemplo, en la línea¿Cómo puedo evitar un error: ninguna variable de entorno?
myeval $env($File)
recibo un error:
can't read "env(NIKE_TECH_DIR)": no such variable
while executing
"myeval $env($File)"
(procedure "chooseRelevantFiles" line 39)
invoked from within
"chooseRelevantFiles $::GlobalVars::reqStage"
(file "/vobs/tavor/src/Scripts/ReproduceBug.tcl" line 575)
¿Cómo puedo evitar este error y pasar a ejecutar mi script?
+1 En general me gusta para evitar comprobando si algo en el sistema existe debido a las condiciones de carrera, pero en este caso es probable que sea apropiada –
me gusta el 'upvar 0 :: env ($ cosas) myvar; si {[info existe myvar]} {... 'idioma algo mejor. Pero todo depende del gusto personal. – kostix
@jk .: Capturar el error es mucho más lento que evitarlo - El manejo de errores de Tcl es _purposefully_ no hiper-rápido - pero ':: env' es un caso especial que es lento haga lo que haga (porque es un estado global del proceso que puede cambiarse fuera del control de Tcl). –