Практическое написание сценариев командной оболочки Bash/Эмуляция ссылочной адресации: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 182:
Судя по выводу программы, переменная <code>type</code> действительно ограничена по видимости, т.е. использование <code>printf</code> для косвенной адресации предпочтительно.
 
Хотя команда <code>printf</code> описана в POSIX, ключ <code>-v</code> для нее в нем не описан, что автоматически делает ваши сценарии не портируемыми, если вы используете для косвенной адресации эту команду. Однако и здесь можно выкрутиться, если использовать <code>eval</code>, например так:
<source lang=bash>
# $ref - имя переменной по ссылке
# $value - присваиваемое значение
eval "$(printf %s=%q "$ref" "$value")"
</source>
 
== Косвенная адресация как источник данных ==