Variables de scope en ksh

En ksh, tengo dos variables con el mismo nombre, una global, otra es local para una function

#!/bin/ksh LOG_FILE=lf function exec_script { local LOG_FILE=f print $LOG_FILE } exec_script print $LOG_FILE 

Si deseo referirme a la variable global $ LOG_FILE dentro de la function exec_script, ¿cómo debo calificarla para que no se haga reference al local?

No creo que puedas. Creo que es una limitación de cómo Ksh interroga al entorno cuando busca el scope de una variable.

extracto del scope de las variables en KSH

Ksh tiene un scope dynamic , por lo que también se puede acceder a la variable en las funciones que invoca la function que declara la variable. Esto se documenta brevemente en la sección de funciones en el manual . Tenga en count que en AT & T ksh (a diferencia de pdksh y derivados, y las características similares de bash y zsh),

extracto Parámetros: descripción general

Cuando lee o establece una variable, zsh busca en la function actual para ver si existe esa variable. De lo contrario, se ve en la siguiente function más externa, y así sucesivamente, hasta que alcanza el scope global (más externo). Por lo tanto, si asigna un valor a una variable que no existe, la variable se crea en el ámbito más externo. (La export de un nuevo parámetro también tiene este efecto).