Ä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 $ 
Tidigare Artikel Nästa Artikel

Bästa Tipsen