Manipulating variables in shell script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Manipulating variables in shell script
# 1  
Old 03-21-2013
Manipulating variables in shell script

Hello,
I know this should be simple but cant find a solution yet.I have the following in a sh script called "var"
Code:
#!/bin/bash
var1=0

And on another script called "main" I use a if construct:
Code:
#!/bin/bash
. var
if [ "$var1" == "0" ]
then
Do this
else
do that
fi

Now in "do this" part,I have to change the value of var1 from "0" to "1".Any help is much appreciated Smilie.Thanks
Regards,
vijai
# 2  
Old 03-21-2013
I am not sure whether I got your question correctly.

To change it to 1, simply assign it:

Code:
var1=1

But, keep in mind, this does not change the value in the "var" file. To change in the "var" file,

Code:
sed -i 's/\(var1=\).*/\11/'  var

Guru.
# 3  
Old 03-21-2013
Quote:
Originally Posted by guruprasadpr
I am not sure whether I got your question correctly.

To change it to 1, simply assign it:

Code:
var1=1

But, keep in mind, this does not change the value in the "var" file. To change in the "var" file,

Code:
sed -i 's/\(var1=\).*/\11/'  var

Guru.
Thanks for your answer Smilie
Actually I need to have a counter like variable.I have a variable "var1" in one .sh and use it in another .sh in "if" statement.
Code:
!#/bin/bash
if [ "$var1" == "0" ]
then
#Do a command here
#and change the value of var1 from 0 to 1 here permanently so that next time the sh is executed,it reads 1.
fi

I tried the second command which you gave but it doesnt work for me Smilie.No error but doesn't work.
# 4  
Old 03-21-2013
Quote:
I tried the second command which you gave but it doesnt work for me .No error but doesn't work.
The sed command provided updates your "var" file with the value 1. This command does not give any output. You will see the changes next time when you source your file.

Guru.
This User Gave Thanks to guruprasadpr For This Post:
# 5  
Old 03-21-2013
Quote:
Originally Posted by guruprasadpr
The sed command provided updates your "var" file with the value 1. This command does not give any output. You will see the changes next time when you source your file.

Guru.
Thank you Smilie
There was a typo in my file.Works wonders now Smilie

---------- Post updated at 04:17 PM ---------- Previous update was at 03:38 PM ----------

could you explain that line so that I can learn it?Also could I make changes to two variables within the same line given that both the variables is going to attain the same value?If yes could you show an example?Thanks a ton SmilieAnd sorry for my numerous silly questions Smilie.
# 6  
Old 03-21-2013
Here's a simpler version that should be clear. "Change var1= line to var1=1":
Code:
sed -i 's/var1=.*/var1=1/' var

Yes, you could easily change two variables, if I get your meaning:
Code:
sed -i -e 's/var1=.*/var1=1/' -e 's/var2=.*/var2=1/' var

# 7  
Old 03-21-2013
Code:
sed -i 's/\(var1=\).*/\11/'  var

-i To update the file in-place
s - To find and replace (eg: s/find/replace/)
var1= - Finds the line containing the pattern var1= and it is grouped using brackets () which can be accessed in the replacement section as \1
\11 - \1 is stands for "var1=" in this case and the second 1 is the replacement value.

To do it for multiple variables, do something like:

Code:
sed -i 's/\(var1=\).*/\11/; s/\(var2=\).*/\15/' file

where the value of var1 is set to 1 and var2 is set to 5.

Guru.
This User Gave Thanks to guruprasadpr For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Shell script to create runtime variables based on the number of parameters passed in the script

Hi All, I have a script which intends to create as many variables at runtime, as the number of parameters passed to it. The script needs to save these parameter values in the variables created and print them abc.sh ---------- export Numbr_Parms=$# export a=1 while do export... (3 Replies)
Discussion started by: dev.devil.1983
3 Replies

2. Shell Programming and Scripting

How to write config shell script to pass variables in master shell script?

Dear Unix gurus, We have a config shell script file which has 30 variables which needs to be passed to master unix shell script that invokes oracle database sessions. So those 30 variables need to go through the database sessions (They are inputs) via a shell script. one of the variable name... (1 Reply)
Discussion started by: dba1981
1 Replies

3. UNIX for Dummies Questions & Answers

How to write Config shell script to pass variables in master shell script?

Dear Unix gurus, We have a config shell script file which has 30 variables which needs to be passed to master unix shell script that invokes oracle database sessions. So those 30 variables need to go through the database sessions (They are inputs) via a shell script. one of the variable name... (1 Reply)
Discussion started by: dba1981
1 Replies

4. Shell Programming and Scripting

Help with manipulating environmental variables in UNIX

I am wondering if there is away to increment a date in c shell. What I need to do is basic, but I lack the knowledge. I have they following environmental variable in my job scripts setenv YYYY `date '+%Y'` I then set YYYY to be part of my output dataset name: setenv dd_OUTPUTP... (1 Reply)
Discussion started by: jclanc8
1 Replies

5. Shell Programming and Scripting

Manipulating env variables for user apache?

So that they can be used in a cgi script? How best to do this? Thanks ---------- Post updated at 06:24 PM ---------- Previous update was at 02:38 AM ---------- Anyone that can help me with this? Basically I want to add an environment variable that will be visible to the cgi scripts when I... (0 Replies)
Discussion started by: stevenswj
0 Replies

6. Shell Programming and Scripting

Variables in shell script

mysqldump --compact --add-drop-table -h192.168.150.80 -uroot -p somePass $combined | sed '/$combined/$table/g' | mysql $databaseThe sed part is not working from the above statement. The variables combined and table are already defined and instead of showing the actual variable, it is executing the... (4 Replies)
Discussion started by: shantanuo
4 Replies

7. Shell Programming and Scripting

Accessing variables of one shell script in another shell script

Hi All, I have a shell script called sample1.sh where I have 2 variables. Now I have another shell script called sample2.sh. I want the variables in sample1.sh to be available to sample2.sh. For example. In sample1.sh I am finding the sum of 2 numbers namely a and b. Now I want to access... (2 Replies)
Discussion started by: rsendhilmani
2 Replies

8. Shell Programming and Scripting

Accessing variables of one shell script in another shell script

I have a variable $exe in a shell script file a.sh which I need to access in another shell script file b.sh. How can I do that? :rolleyes: Thanks!! (2 Replies)
Discussion started by: looza
2 Replies

9. Shell Programming and Scripting

Shell Script Variables

HI guys I need to store the output of a sql query in a variable, can you tell me how to do that eg) select count(*) from s_escl_req $count = count(*) from s_escl_req how would i store the count(*) from the sql statement in a variable called $count. thanks (3 Replies)
Discussion started by: ragha81
3 Replies

10. Shell Programming and Scripting

Manipulating awk $variables using sed?

I have been searching around the forums here trying to find a solution to my problem but not getting anywhere but closer to baldness. I have a 20 column pipe "|" seperated text file. The 14th variable doesnt always exist, but will have the format of YYYYMM or YYYY if it does. I need to take... (2 Replies)
Discussion started by: r0sc0
2 Replies
Login or Register to Ask a Question