Я определяю функции в скрипте с readonly local
переменными следующим образом:
test.sh
function test_function() {
readonly local foo="bar"
}
Перед поиском foo
, конечно, не определено
$> echo $foo
$>
Но тогда, когда я получаю и запускаю функцию
$> source test.sh
$> test_function
$> echo $foo
bar
$>
внезапно переменная вышла за пределы своей области видимости. Удаление readonly
решает проблему. Что я не так понимаю по поводу использования readonly
и local
и можно ли использовать оба без этой проблемы?
Случай использования: я получаю ошибки / предупреждения при многократном вызове test_function
, поскольку переменная должна быть доступна только для чтения, но уже определена.