Missing Assigned Variable within logic operator


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Missing Assigned Variable within logic operator
# 1  
Old 03-12-2010
Missing Assigned Variable within logic operator

Hey ,

I'm trying to perform the following command, however it cannot read the variable assigned earlier. I'm not sure why this happen. Please help thanks

Code:
while :
do
echo "what's ur name? (if none just press [ENTER])"
read name
changeName = echo $name | sed "s/on/ey/"
echo $changeName  #this variable still can be read
if [ -z $name ]; then
 echo "you don't have a name goodbye"
 exit 0
else
 echo "your name will change from: $name to $changeName" #now changeName cannot be read why?
fi
done

# 2  
Old 03-12-2010
MySQL

To assign a command output to the variable you need to use the backtick(`).and also you should not give space while assign the output to a variable.

Code:
while :
do
echo "what's ur name? (if none just press [ENTER])"
read name
changeName=`echo $name | sed "s/on/ey/"`
echo $changeName  #this variable still can be read
if [ -z $name ]; then
 echo "you don't have a name goodbye"
 exit 0
else
 echo "your name will change from: $name to $changeName" #now changeName cannot be read why?
fi
done

# 3  
Old 03-13-2010
Hey,

Thanks for replying but I've tried using the back tick and i didn't give a space when assigning variable but instead i'm getting this error

./testVar: line 7: jey: command not found

the changeName=`echo $name | sed "s/on/ey/"` command cannot be read if i used the back tick

please helpp
# 4  
Old 03-13-2010
Code:
changeName=`echo "$name" | sed "s/on/ey/"`

Code:
if [ -z "$name" ]; then

Use double quotes for the variable $name. Because your input may have space characters.
Then only it will preserve the white spaces

Last edited by thillai_selvan; 03-13-2010 at 01:14 AM..
# 5  
Old 03-13-2010
I thing you have gave space characters in your input , to avoid this use the double quotes.

Code:
while :
do
echo "what's ur name? (if none just press [ENTER])"
read name
changeName=`echo "$name" | sed "s/on/ey/"`
echo $changeName  #this variable still can be read
if [ -z "$name" ]; then
 echo "you don't have a name goodbye"
 exit 0
else
 echo "your name will change from: $name to $changeName" #now changeName cannot be read why?
fi
done

# 6  
Old 03-13-2010
Hey Guys,

thanks for the fast replies, even though i used double quotes it still doesn't wor and my input doesn't have any white spaces

here is the code suggested
Code:
#!/bin/sh

while :
do
echo "what's ur name? (if none just press [ENTER])"
read name
changeName= `echo "$name" | sed "s/on/ey/"`
echo $changeName  #this variable still can be read
if [ -z "$name" ]; then
 echo "you don't have a name goodbye"
 exit 0
else
 echo "your name will change from: $name to "$changeName" ? [y/n]"
 read ans
fi
done


This is the ouput I got:

what's ur name? (if none just press [ENTER])
jon
./testVar: line 7: jey: command not found

your name will change from: jon to ? [y/n]



I'm confused never had this problem before
# 7  
Old 03-13-2010
Quote:
Originally Posted by sexyTrojan
Hey Guys,

thanks for the fast replies, even though i used double quotes it still doesn't wor and my input doesn't have any white spaces

here is the code suggested
Code:
#!/bin/sh

while :
do
echo "what's ur name? (if none just press [ENTER])"
read name
changeName= `echo "$name" | sed "s/on/ey/"`
echo $changeName  #this variable still can be read
if [ -z "$name" ]; then
 echo "you don't have a name goodbye"
 exit 0
else
 echo "your name will change from: $name to "$changeName" ? [y/n]"
 read ans
fi
done

This is the ouput I got:

what's ur name? (if none just press [ENTER])
jon
./testVar: line 7: jey: command not found

your name will change from: jon to ? [y/n]



I'm confused never had this problem before
Code:
#!/bin/sh

while :
do
echo "what's ur name? (if none just press [ENTER])"
read name
changeName=`echo "$name" | sed "s/on/ey/"`
echo $changeName  #this variable still can be read
if [ -z "$name" ]; then
 echo "you don't have a name goodbye"
 exit 0
else
 echo "your name will change from: $name to "$changeName" ? [y/n]"
 read ans
fi
done

I just removed the space after the assignment
operator as in the below line and it is working for me...

Code:
changeName=`echo "$name" | sed "s/on/ey/"`

And it will keep on looping till you don't put a name...
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Programming

Missing Logic Looping Through Switch Statement

Having trouble with the logic when looping over this switch case again: for (j = 0; data != 0; j++){ switch(data){ case 'c': output = ranit(r_brace_array); break; case 'h': output = ranit(pipe_array); break; ... (6 Replies)
Discussion started by: Azrael
6 Replies

2. Shell Programming and Scripting

Perl multiple qr assigned to variable

Experts, I'm having problems with the code below. I'm trying to test $var2 for two different regexs. I thought it could be done per below, but I'm getting the following error when running. $ ./test.pl b fed50c0100**** Unescaped left brace in regex is deprecated, passed through in regex; marked... (2 Replies)
Discussion started by: timj123
2 Replies

3. UNIX for Dummies Questions & Answers

How do you check if a variable has been assigned?

I am trying to check whether a variable has been assigned on the command line or not. Here is what I did: #!/usr/bin/bash if( $variable == '\0') { print "variable was not assigned" exit } else NF = 2 {print $1, ""} exit fi awk -f question1.awk variable = 58 letters.txt. So... (3 Replies)
Discussion started by: Fred63528
3 Replies

4. Shell Programming and Scripting

How to split a data assigned to a variable

The requirement is, there is a log file which contains a huge data. i need to get a particular field out of it by searching with another field. ex: 2011-03-28 13:00:07,423 : millis=231 q={ call get_data_account(?,?,?,?,?) }, params= i need to search for the word "get_data_account" in file... (1 Reply)
Discussion started by: Jassz
1 Replies

5. Shell Programming and Scripting

How to use logic NOT operator for multiple AND conditions

Hi, my requirement is that my builds should not be built if the current hour is greater 3 but not (between 12 and 15), I'm trying to write a shell script for this but there is always an error hour=$1 echo "hour:$hour" if && ! && ]; then echo "exit" else echo "enter" fi ... (9 Replies)
Discussion started by: kgsrinivas
9 Replies

6. Shell Programming and Scripting

[Bash] Variable won't get assigned value

I am making of a script that will go through a couple of for loops and create file names based on the values in that loop, however the variable that combines everything is not getting assigned properly: #! /bin/bash for imod in K33_j1b_WS9_6 do for emod in mb2A mb2C mb3A mb3C mb4A... (1 Reply)
Discussion started by: badinsults
1 Replies

7. Shell Programming and Scripting

unary operator is missing

hi , i m getting an error unary operator is missing. pls check why is this so? i=5 while test $i !=0 do echo $i i=`expr $i - 1` done (3 Replies)
Discussion started by: angel12345
3 Replies

8. Shell Programming and Scripting

Check if a variable has a value assigned?

Hi, I want to check if a variable has a value assigned to it or not. I can do following - cat $Var > File1 if then echo "$Var has value" else echo "$Var is null" fi But I have to check for 3 Variables and I want to wrap it up in couple of unix statements. Any... (3 Replies)
Discussion started by: sumeet
3 Replies

9. UNIX for Dummies Questions & Answers

What does $? mean when assigned to a variable?

If i write this statement in a Korn Shell script RCODE=$? what possibly does it eman? (3 Replies)
Discussion started by: ranjita.c
3 Replies
Login or Register to Ask a Question