Create a small shell script, testVar2.sh:
testVar2.sh
#!/bin/sh
echo “testVar is: $testVar”
testVar=”my shell script”
echo “testVar is: $testVar”
Now run the script:
$ ./testVar2.sh
testVar is:
testVar is: my shell script
testVar hasn’t been set to any value, so it’s blank. Then we give it a value, and it has the expected result.
Now run:
$ testVar=hello
$ ./testVar2.sh
testVar is:
testVar is: my shell script
It’s still not been set! What’s going on?!
When you call testVar2.sh from your interactive shell, a new shell is spawned to run the script. This is partly because of the #!/bin/sh line at the start of the script, which we discussed earlier.
We need to export the variable for it to be inherited by another program – including a shell script. Type:
$ export testVar
$ ./testVar2.sh
testVar is: hello
testVar is: my shell script
Now look at line 3 of the script: this is changing the value of testVar. But there is no way that this will be passed back to your interactive shell. Try reading the value of testVar:
$ echo $testVar
hello
$
Once the shell script exits, its environment is destroyed. But testVar keeps its value of hello within your interactive shell.
In order to receive environment changes back from the script, we must source the script – this effectively runs the script within our own interactive shell, instead of spawning another shell to run it.
We can source a script via the “.” command:
$ testVar=hello
$ echo $testVar
hello
$ . ./testVar2.sh
testVar is: hello
testVar is: my shell script
$ echo $testVar
my shell script
To be continued….
Incoming search terms:
- sfvalidatorregex example (6)
- shell getservbyname (3)
- script expired jqgrid (3)
- jqgrid script expired (3)
- shell script to send birthday wishes automatically (2)
- jqgrid export to excel perl (2)
- shell script for separating sentences of file (1)
- shell script loop mysql (1)
- shell script mysql with loop (1)
- shell script to copy a file from one directory to another (1)
- shell script to send birthday greetings (1)
- shell script to send email on birthday (1)
- symfony display data in input textbox (1)
- unix shell script php hello php (1)
- visichat script hack (1)
- shell script christmas countdown (1)
- shell script birthday (1)
- birthday sh scripts (1)
- javascript internet explorer redirect vba url (1)
- jqgrid autoadd (1)
- jqgrid excel-export crashes excel (1)
- jqgrid export to excel only selected columns (1)
- mysql shellscript loop (1)
- redis linux shell (1)
- sample shell script for sending birthday wishes (1)
- scrolling effects using jquery and css in php with demo&code (1)
- array shellscript (1)
- xmapp shell curl (1)
You will also be interested in ,
- SSH without password from one server to another in unix aix or linux
- LINDOWS SIMPLY A QUICK RECAP :-)
- Shell Scripts Part 1
- Rsync command-line switches example
- Output buffering using ob_start in php
- Change webpage title dynamically using jquery
- Image gallery using php and mysql blob storage and displaying the image from mysql blob
- Zoom in and zoom out image using jquery
- Auto refresh page with timer using javascript
- How To Set And Get Cookies Using PHP

