Ändern einer schreibgeschützten Variablen
Lösung 1
Eine als schreibgeschützt deklarierte Variable kann während des ausgehenden Prozesses nicht geändert werden.
Wenn die Variable jedoch in eine untergeordnete Shell exportiert wird, kann sie geändert werden.
#! / bin / bash if ["$ PROC_PID"! = "$ PPID"]; exportiere dann PROC_PID = $$ var = "mype" echo "initial $ var" deklariere -r var exportiere var $ 0 & # child process else echo "vor $ var" var = "netty5" echo "nach $ var" fi
Lösung 2
Indirekte Entwicklung nutzen.
# Deklaration der Nur-Lese-Variablen $ readonly Z = "Y" $ echo $ ZY # Unterdrückungstest $ nicht gesetzt Z -l: nicht gesetzt: Z: nicht gesetzt: nur-Lese-Variable # Ersetzungstest $ Z = W -l: Z: nur-Lese-Variable # Deklaration einer indirekten Variablen $ Y = W $ echo "$ Y" W # Entwicklung einer Variablen mit Indirektion $ echo "$ {! Z}" W $