Sponsored Content
Top Forums Shell Programming and Scripting Using same variable in 2 different scripts that run at the same time Post 302582321 by Corona688 on Thursday 15th of December 2011 01:44:40 PM
Old 12-15-2011
Given that you overwrite ABC before you print it in script 2, ABC will always end up "xyz.txt" in that script no matter what it was before. Their values aren't protected in any way. But that's beside the point...

Variables don't travel "sideways" like that. They don't actually travel at all -- each and every program has its own, independent set of exported variables, called the 'environment'.

When you run a script or program, it gets a copy of your current environment. But the copy is unconnected. Change the child and the parent remains the same, and vice versa.

If you wanted the same variable to be set in two different programs, either set it earlier in your ~/.profile or ~/.bashrc file so it gets exported on login for you, or have a little config file thing for your scripts to source:

Code:
# littleconfigfile
# Some shells don't like export VAR=asdf.  To be safe, break it in half.
VAR=asdf
export VAR

Code:
#script1
. littleconfigfile
echo "$VAR"

Code:
#script2
. littleconfigfile
echo "$VAR"

The "." operator runs the given script inside the current shell. This is very different from just executing './littleconfigfile' because . allows you to set your own variables instead of setting variables in a useless copy.

Last edited by Corona688; 12-15-2011 at 02:50 PM..
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

How to run three scripts one after another automatically???

Hi !! How do u run three scripts one after another automatically using crontab command at some specified regular interval. Say i have three scripts A,B,C and i want to run the three scripts A followed by B followed by C. REQUIRE HELP URGENTLY Thanks in advance Arunava . (3 Replies)
Discussion started by: arunava_maity
3 Replies

2. UNIX for Advanced & Expert Users

how to set the environment variable at run time

hi, I have one environment variable like path in my system.But in my program i need to change that path .suppose it has a value "config" now i need to chage it as "config1" or something else.i need to use that variable for complete project.It means at first it will use the old path but after... (4 Replies)
Discussion started by: sada@123
4 Replies

3. AIX

To run scripts

How to run a script from any directory? Should i include any environment or wat should i start with in writing a script ? (1 Reply)
Discussion started by: rollthecoin
1 Replies

4. Shell Programming and Scripting

how to run scripts....

I am going to run the scripts (filetest.sh) Its run with..... ./filetest.sh sh filetest.sh but not run with..... filetest.sh ( giviing error command not found) tell me the way how we can do it ? (6 Replies)
Discussion started by: ani83_pune
6 Replies

5. Shell Programming and Scripting

Picking contents value of file at run time based on variable values

HI, I have to write a unix script and need your help. in my application where I have to invoke this script a varialble is there where the value comes in a variable . for example variable can be var=ABC like this there will be any type of value in the vcariable. there is a unix directory... (2 Replies)
Discussion started by: manish8484
2 Replies

6. Shell Programming and Scripting

Change Variable Value from Multiple Scripts and Use these Variable

Hi to All, Please find below details. file_config.config export file1_status="SUCCESS" export file2_status="SUCCESS" file_one.sh I am calling another two shell script from these script. I need to pass individual two script status (If it's "FAILED") to file_main.sh. file_main.sh I... (2 Replies)
Discussion started by: div_Neev
2 Replies

7. Shell Programming and Scripting

Accepting multiple values in a variable at run time

Hi, Below is starting entry of my script #!/bin/ksh Usage() { print "Usage: $0 ID OPTION SERVER" print "<br>Where :" print "<br>Enter your ID into PARAM1, OPTION in the PARAM2 and SERVER in the PARAM3 field" print "<br>ID should be a valid ID" print "<br>OPTION should be either... (2 Replies)
Discussion started by: gopajitmalakar
2 Replies

8. UNIX for Dummies Questions & Answers

Scripts can be run manually but couldn't run with cronjobs

I am from MQ/MB technology. My requirement is to display the queue manger and broker status on daily basis. If I manually run the script, it works fine and displays output. But when I have scheduled the same using cronjobs it shows only the queue manger status and not the broker status. Can... (3 Replies)
Discussion started by: Anusha M
3 Replies

9. Shell Programming and Scripting

How to run a sequence of scripts?

Assume I want to run a sequence of scripts: script0001.sh script0002.sh script0003.sh ... script0122.sh script0123.sh I only know a little Linux scripting, so the following is the best I can write for k in $(seq 1 123) do ./script${k}.sh done Of course it doesn't work... (2 Replies)
Discussion started by: zzzhhh
2 Replies

10. Shell Programming and Scripting

How to run 2 python scripts at the same time side by side on the same line?

Could I run 2 python scripts at the same time side by side output on the same line in this same format but with scripts? from itertools import izip_longest with open("file1") as textfile1, open("file2") as textfile2: for x, y in izip_longest(textfile1, textfile2, fillvalue=""): x =... (4 Replies)
Discussion started by: bigvito19
4 Replies
SH(1)							      General Commands Manual							     SH(1)

NAME
sh, ., break, case, cd, continue, eval, exec, exit, export, for, if, read, readonly, set, shift, trap, umask, wait, while - shell SYNOPSIS
sh [-eiknqstvxu] [-c str] [file] OPTIONS
-c Execute the commands in str -e Quit on error -i Interactive mode; ignore QUIT, TERMINATE, INTERRUPT -k Look for name=value everywhere on command line -n Do not execute commands -q Change qflag from sig_ign to sig_del -s Read commands from standard input -t Exit after reading and executing one command -v Echo input lines as they are read -x Trace -u Unset variables EXAMPLES
sh script # Run a shell script DESCRIPTION
Sh is the shell, which forms the user's main interface with the system. On startup, the shell reads /etc/profile and $HOME/.profile, if they exist, and executes any commands they contain. The Minix shell has most of the features of the V7 (Bourne) shell, including redirect- ion of input and output, pipes, magic characters, background processes, and shell scripts. A brief summary follows, but whole books have been written on shell programming alone. Some of the more common notations are: date # Regular command sort <file # Redirect stdin (standard input) sort <file1 >file2 # Redirect stdin and stdout cc file.c 2>error # Redirect stderr a.out >f 2>&1 # Combine standard output and standard error sort <file1 >>file2 #Append output to file2 sort <file1 >file2 & #Background job (ls -l; a.out) & # Run two background commands sequentially sort <file | wc # Two-process pipeline sort <f | uniq | wc # Three-process pipeline ls -l *.c # List all files ending in .c ls -l [a-c]* # List all files beginning with a, b, or c ls -l ? # List all one-character file names ls ? # List the file whose name is question mark ls '???' # List the file whose name is three question marks v=/usr/ast # Set shell variable v ls -l $v # Use shell variable v PS1='Hi! ' # Change the primary prompt to Hi! PS2='More: ' # Change the secondary prompt to More: ls -l $HOME # List the home directory echo $PATH # Echo the search path echo $? # Echo exit status of previous command in decimal echo $$ # Echo shell's pid in decimal echo $! # Echo PID of last background process echo $# # Echo number of parameters (shell script) echo $2 # Echo second parameter (shell script) echo "$2" # Echo second parameter without expanding spaces echo $* # Echo all parameters (shell script) echo $@ # Echo all parameters (shell script) echo "$@" # Echo all parameters without expanding spaces The shell uses the following variables for specific purposes: SHELL the path of the current shell HOME the default value for the cd(1) command PATH the directories to be searched to find commands IFS the internal field separators for command strings PS1 the primary shell prompt PS2 the secondary shell prompt There are various forms of substitution on the shell command line: `...` Command string between back-quotes is replaced by its output "..." Permits variable substitution between quotes '...' Inhibits variable substitution between quotes $VAR Replaced by contents of variable VAR ${VAR} Delimits variable VAR from any following string The expressions below depend on whether or not VAR has ever been set. If VAR has been set, they give: ${VAR-str} Replace expression by VAR, else by str ${VAR=str} Replace expression by VAR, else by str and set VAR to str ${VAR?str} Replace expression by VAR, else print str and exit shell ${VAR+str} Replace expression by str, else by null string If a colon is placed after VAR, the expressions depend on whether or not VAR is currently set and non-null. The shell has a number of built-in commands: : return true status . fn execute shell script fn on current path break [n] break from a for, until or while loop; exit n levels continue [n] continue a for, until or while loop; resume nth loop cd [dir] change current working directory; move to $HOME eval cmd rescan cmd, performing substitutions eval rescan the current command line exec cmd execute cmd without creating a new process exec <|> with no command name, modify shell I/O exit [n] exit a shell program, with exit value n export [var] export var to shell's children; list exported variables pwd print the name of the current working directory read var read a line from stdin and assign to var readonly [var] make var readonly; list readonly variables set -f set shell flag (+f unsets flag) set str set positional parameter to str set show the current shell variables shift reassign positional parameters (except ${0}) one left times print accumulated user and system times for processes trap arg sigs trap signals sigs and run arg on receipt trap list trapped signals umask [n] set the user file creation mask; show the current umask wait [n] wait for process pid n; wait for all processes The shell also contains a programming language, which has the following operators and flow control statements: # Comment The rest of the line is ignored = Assignment Set a shell variable && Logical AND Execute second command only if first succeeds || Logical OR Execute second command only if first fails (...) Group Execute enclosed commands before continuing for For loop (for ... in ... do ... done) case Case statement ((case ... ) ... ;; ... esac) esac Case statement end while While loop (while ... do ... done) do Do/For/While loop start (do ... until ...) done For/While loop end if Conditional statement (if ... else ... elif ... fi) in For loop selection then Conditional statement start else Conditional statement alternative elif Conditional statement end until Do loop end fi Conditional statement end SEE ALSO
echo(1), expr(1), pwd(1), true(1). SH(1)
All times are GMT -4. The time now is 03:43 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy