$ mySite="superuser"
$ readonly mySite
$ unset mySite
bash: unset: mySite: cannot unset: readonly variable
Как мы можем удалить mySite, так как это переменная только для чтения?
Вы не можете удалить мой сайт. Весь смысл команды readonly состоит в том, чтобы сделать ее окончательной и постоянной (до тех пор, пока не завершится процесс оболочки). Если вам нужно изменить переменную, не помечайте ее только для чтения.
См. Https://stackoverflow.com/a/21294582/642372.
Это темная магия. Он использует gdb
чтобы сообщить процессу bash
очистить переменную, вызвав внутреннюю функцию C.
mySite="superuser"
readonly mySite
gdb -n <<EOF >>/dev/null 2>&1
attach $$
call unbind_variable("mySite")
detach
quit
EOF
Вы никогда не должны иметь это в производстве. У меня есть это в моем .bashrc.