Переменные в ksh

В ksh у меня есть две переменные с одинаковым именем, одна глобальная, другая локальна для функции

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

Если я хочу передать глобальную переменную $ LOG_FILE в функцию exec_script, как я должен ее квалифицировать так, чтобы локальная ссылка не получалась?

One Solution collect form web for “Переменные в ksh”

Я не думаю, что ты можешь. Я думаю, что это ограничение того, как Ksh допрашивает окружающую среду при поиске области обзора.

выдержка из области переменных в KSH

Ksh имеет динамическое масштабирование, поэтому переменная также доступна в функциях, которые вызывается функцией, объявляющей переменную. Это подробно описано в разделе, посвященном функциям руководства . Заметим, что в AT & T ksh (в отличие от pdksh и производных и аналогичных особенностей bash и zsh),

отрывок Параметры: обзор

Когда вы читаете или устанавливаете переменную, zsh смотрит в текущую функцию, чтобы увидеть, существует ли эта переменная. Если нет, то он смотрит в следующую внешнюю функцию и так далее, пока не достигнет глобальной (внешней) области. Поэтому, если вы присваиваете значение переменной, которая не существует, переменная создается в самой внешней области. (Этот параметр также влияет на экспорт нового параметра.)

  • вращать элемент массива в сценарии оболочки
  • Заменить значения в файле
  • С оболочкой. Сделать сценарий ожидания завершения Gnome-терминала
  • Найти все репозитории git, которые не содержат ни одного из .gitignore и .gitattributes
  • Команда find и rm не подчиняется исключающему списку
  • Установка переменной со значением по умолчанию ведет себя по-другому, если перед командой?
  • Аргументы сценария Bash не передаются функции?
  • Сценарий, использующий fifos, не генерирующий выход при обработке из stdin
  • Изменить каталог рабочего каталога в сценарии оболочки
  • использование функции скрипта вместо ввода с клавиатуры
  • Загрузить файл на ftp-сервер, используя команды в сценарии оболочки?
  • Linux и Unix - лучшая ОС в мире.