06-06-2005
The reason is that the script is executed not in *your* environment, but in an environment *of its own*. This environment of the script inherits every variable of your environment, but every changes made inside it will be lost upon destruction of this environment - which happens when the script ends.
To execute the script in your own environment use the "." command:
# ./myscript
will execute the script in its own environment, but:
# . ./myscript
will execute it in your environment.
This mechanism is usually used to set up your initial environment. Look at your ~/.profile file and you might eventually notice a line reading ". ~/.kshrc". This is using this mechanism to "source in" (as the correct phrase is) the content of your Korn-shell rc-file to your environment. Usually .kshrc consists of variable declarations, (useful) function definitions, etc.
bakunin
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
Hi everyone,
I am trying to set up the .profile for a user I have just created. In trying to set up the shell variables, I want to make the shell be korn shell (default shell i believe is Borne shell), so, this is what I did:
SHELL=/usr/bin/ksh
export SHELL
Whenl executing the .profile,... (1 Reply)
Discussion started by: rachael
1 Replies
2. UNIX for Dummies Questions & Answers
Hello,
I want to set some environment variables with this script:
ip=$@
echo Remote Computer: $ip
PERLDB_OPTS="CallKomodo=$ip:9000 RemotePort=$ip:9010 PrintRet=0"
export PERLDB_OPTS
PERL5LIB=/opt/komodo
export PERL5LIB
echo PERLDB_OPTS: $PERLDB_OPTS
echo PERL5LIB: $PERL5LIB
But it... (5 Replies)
Discussion started by: Gargamel
5 Replies
3. Shell Programming and Scripting
hi All
I have a file that has 4 lines:
1. yesterday's date (mm/dd/yyyy)
2. yesterday's day- dd
3. yesterday's month- mm
4. yesterday's year- yyyy
I want to read this file and place them in variables. how can I do this.
Please help.
thanks in advance!!
KS (3 Replies)
Discussion started by: skotapal
3 Replies
4. Shell Programming and Scripting
I'm not quite sure what I'm doing wrong here.
I've go several jobs which print reports. Occassionally a printer will break down and reports need to be move to another printer. Rather than hard code the printer names in our scripts I'm trying to set these programatically
using our function... (1 Reply)
Discussion started by: BCarlson
1 Replies
5. UNIX for Advanced & Expert Users
i have a file .NAMEexport MY_NAME=JOE
when i do this at the command prompt #. .NAME
$echo MY_NAME
$JOEi created a script called Run.sh . .NAME At the command prompt i did #sh Run.sh
#echo $MY_NAMEit returns nothing. What have i missed out? (7 Replies)
Discussion started by: new2ss
7 Replies
6. UNIX for Dummies Questions & Answers
Hi all,
I have a shell script that sets up the environment for an application running on UNIX - ksh. This script is run using:
. ./script_name XX
where XX is a parameter. I want to run it from another shell script but when I do it I don't get the envornment variables set up and the prompt... (3 Replies)
Discussion started by: solar_ext
3 Replies
7. UNIX for Dummies Questions & Answers
hi all,
I would appreciate if some one could explain me the difference between setting up the variables as shown below
HOME=${HOME:-"/home/user1"}
HOME=/home/user1 (1 Reply)
Discussion started by: SSSB
1 Replies
8. UNIX for Dummies Questions & Answers
#!/bin/bash
if ; then
ASS1_DATA_DIR=./
echo $ASS1_DATA_DIR
export ASS1_DATA_DIR
echo "data dir"
fi
if ; then
ASS1_OUTPUT_DIR=./
export ASS1_OUTPUT_DIR
fi
I want to create a new environment variable ASS1_DATA_DIR and ASS1_OUTPUT_DIR in bash and set them to the current... (4 Replies)
Discussion started by: bigubosu
4 Replies
9. UNIX for Dummies Questions & Answers
Hi all,
This is my first post here. I need to set up a few environment variables with a shell script. Some are hard-coded, but some should come from other commands or as input from the user. How do I do that?
For example, I need to export a variable as such:
export DISPLAY=127.0.0.1:8.0
... (2 Replies)
Discussion started by: exchequer598
2 Replies
10. Shell Programming and Scripting
So I'm writing a script to generate pairwise scores for how similar two strings are, and while I've been able to get it to work on a single script, I've been unable to iterate it.
So suppose I have a file thus
1234567890
1234567890
1234567899
first I need to assign two lines, by their... (3 Replies)
Discussion started by: viored
3 Replies
chroot(1M) chroot(1M)
NAME
chroot - change root directory for a command
SYNOPSIS
newroot command
DESCRIPTION
The command executes command relative to the newroot. The meaning of any initial slashes in path names is changed for command and any of
its children to newroot. Furthermore, the initial working directory is newroot.
Note that command suffixes that affect input or output for the command use the original root, not the new root. For example, the command:
locates file relative to the original root, not the new one.
The command variable includes both the command name and any arguments.
The new root path name is always relative to the current root. Even if a is currently in effect, the newroot argument is relative to the
current root of the running process.
This command is restricted to users with appropriate privileges.
EXTERNAL INFLUENCES
International Code Set Support
Single- and multibyte character code sets are supported.
WARNINGS
command cannot be in a shell script.
Exercise extreme caution when referring to special files in the new root file system.
does not search the environment variable for the location of command, so the absolute path name of command must be given.
When using to establish a new environment, all absolute path name references to the file system are lost, rendering shared libraries inac-
cessible. If continued access to shared libraries is needed for correct operation, the shared libraries and the dynamic loader be copied
into the new root environment.
SEE ALSO
chdir(2), chroot(2).
STANDARDS CONFORMANCE
chroot(1M)