5
$ mySite="superuser"
$ readonly mySite
$ unset mySite
bash: unset: mySite: cannot unset: readonly variable

Как мы можем удалить mySite, так как это переменная только для чтения?

2 ответа2

2

Вы не можете удалить мой сайт. Весь смысл команды readonly состоит в том, чтобы сделать ее окончательной и постоянной (до тех пор, пока не завершится процесс оболочки). Если вам нужно изменить переменную, не помечайте ее только для чтения.

0

См. 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.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .