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:
- sample shell script for sending birthday wishes (1)
- unix shell script php hello php (1)
- shell scripts while loop mysql (1)
- shell script to send email on birthday (1)
- shell script to send birthday greetings (1)
- shell script to copy a file from one directory to another (1)
- shell script mysql with loop (1)
- shell script loop mysql (1)
- shell script for separating sentences of file (1)
- shell script birthday (1)
- sfvalidatorregex example (1)
- xmapp shell curl (1)
You will also be interested in ,
- LINDOWS SIMPLY A QUICK RECAP :-)
- Rsync command-line switches example
- Shell Scripts Part 1
- SSH without password from one server to another in unix aix or linux
- Create thumbnail using php and gd library
- Append data to a text file using php
- Exclamation mark (!) at odd places while using php mail fixed
- Close Event In Javascript For Firefox, IE and Chrome
- Beautiful Christmas countdown timer complete webpage with css download free
- Redirect webpage using php
