Ändra en skrivskyddad variabel
Lösning 1
En variabel som deklareras som skrivskyddad kan inte ändras under utgående process.
Men om variabeln exporteras i ett barnskal kan det ändras.
#! / bin / bash om ["$ PROC_PID"! = "$ PPID"]; sedan exportera PROC_PID = $$ var = "mype" echo "initial $ var" deklarera -r var export var $ 0 & # child process annars echo "före $ var" var = "netty5" echo "efter $ var" fi
Lösning 2
Använda indirekt utveckling.
# Deklaration av skrivskyddad Variabel $ readonly Z = "Y" $ echo $ ZY # Suppressionstest $ unset Z -l: unset: Z: kan inte avbrytas: readonly variabel # Ersättnings test $ Z = W -l: Z: readonly variabel # Deklaration av en indirekt variabel $ Y = W $ echo "$ Y" W # Utveckling av variabel med indirektion $ echo "$ {! Z}" W $