Переменные в 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 смотрит в текущую функцию, чтобы увидеть, существует ли эта переменная. Если нет, то он смотрит в следующую внешнюю функцию и так далее, пока не достигнет глобальной (внешней) области. Поэтому, если вы присваиваете значение переменной, которая не существует, переменная создается в самой внешней области. (Этот параметр также влияет на экспорт нового параметра.)

  • Скопируйте имена файлов и добавьте префикс пути в каталог, рекурсивный
  • shell или perl-скрипт для проверки группы имеют права чтения
  • Как пропустить невосприимчивый сервер
  • Использование переменных bash в команде perl в сценарии bash
  • Как именно «до $ @» работает в сценариях bash?
  • Переименование нескольких каталогов, вставляемых между
  • Скрипт для распознавания жестких дисков и запуск Smartctl
  • Как запустить Java-программу в скрипте Bash и дать ей один аргумент?
  • Почему я получаю сообщение об ошибке «print_unicode: строка 9: printf: отсутствует символ Unicode для Unicode 0187» с этим скриптом
  • Обертка Bash, которая будет форматировать вывод другой программы
  • Поверните скрипт bash и php в распределяемый rpm
  • Interesting Posts
    Linux и Unix - лучшая ОС в мире.