Возможно ли (каким образом?) создать новую переменную bar (забрав как $foo) и присвоить ей какое-либо значение, т.е . по смыслу получить нечто похожее на
1) универсальный, но небезопасный способ:
eval "имя=значение"
В этом случае передаваемый текст нужно дважды экранировать, что может быть сложно при вставке из переменной, и этого способа лучше избегать.
2) универсальный, безопасный, но с побочными эффектами:
export "имя=значение"
Побочный эффект: переменная экспортируется.
3) безопасный, без побочных эффектов, но bash-only:
declare -g "имя=значение"
(без -g если переменная локальная для функции)
Возможно ли (каким образом?) создать новую переменную bar (забрав как $foo) и присвоить ей какое-либо значение, т.е . по смыслу получить нечто похожее на
можно. Но не нужно.
Hint: я не знаю, что у вас за задача, но вангую, что вам пригодится ассоциативный массив:
for index in "${!array[@]}"; do echo "index: '$index', array[index]: '${array[$index]}'"; done
index: 'a b c', array[index]: 'ZZZ'
index: 'bar', array[index]: 'xyz'