Сбросьте переменные только для чтения

Можно добавить материал к /etc/rc.local.

Иначе Вы могли поместить свой сценарий в /etc/init.d/, chmod +x это и затем выполненный update-rc.d FOO defaults.

3
06.01.2012, 20:15
1 ответ

Не то, чтобы я знаю о. По крайней мере, очевидные пути не будут работать: Вы не можете unset переменная только для чтения или удаляет атрибут "только для чтения" с typeset +r. Это идет для всех ksh вариантов, которые я видел, и для удара, но существует, по-видимому, ksh версии такой как на AIX 4.3, которые позволяют typeset +r (который zsh также позволяет).

Технически, можно сделать это снаружи: соединитесь с процессом ksh с отладчиком и зеркально отразите бит в памяти, где процесс ksh хранит информацию, что переменная только для чтения. Таким образом, переменная только для чтения не является абсолютным средством защиты.

Если необходимо установить переменную на другое значение прежде, чем запустить команду, сделайте это через env:

readonly foo='some value'
env foo='other value' mycommand

С другой стороны, сделайте переменную только для чтения в ограниченном объеме (в функции).

5
27.01.2020, 21:17
  • 1
    Gilles, Вы преподаете мне что-то новое, повседневное здесь :-) –  Nikhil Mulley 06.01.2012, 20:51

Теги

Похожие вопросы