global variable in awk

I wrote a awk script file and define some global variables after BEGIN option:
BEGIN {
cell = "";
alarm = "";}

when i run the command:
awk -f awk_script inputfile
The results are as expected. But when I put awk script into a shell script. Global variables couldn't be understand.

I don't want to use the formatting:
awk -v cell=123 awk_script inputfile . Because the global variables can't be changed many times before finishing awk_script ( with -v option: golbal variables're alway fixed).

Who can solve this for us?
Thanks

awk does not have the concept of immutable global variables.

If you define a variable such as cell in the BEGIN { cell=""; } rule, this variable will be set before any other rules are applied. However if you include a variable assignment on the command line i.e. -v cell=123, then cell is set to 123 before the BEGIN rule is applied. When the BEGIN rule is applied, then cell is (re)set to "".