Bash assign string to variable


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Bash assign string to variable
# 8  
Old 02-02-2011
Thanks ,I changed the code but now var price doesnt have return result
Any idea why
Code:
 
#!/bin/bash
echo -n "Please provide a product id: "
read id
line=`grep "$id" inventory`
if(($(echo ${#line})==0))
then
{
echo No mach
}
else
{
qty=`echo $line | cut -c6-10`
price=`echo $line | cut -c11-15`    
echo price $price
echo quantity $qty
}
fi

# 9  
Old 02-02-2011
don't use braces with your if/else. ( braces {} have different meaning in shell ). you can use -n or -z in your if/else to check for string size
# 10  
Old 02-02-2011
Thanks ,could you show me how to use it with code
# 11  
Old 02-03-2011
Quote:
Originally Posted by lio123
Thanks ,I changed the code but now var price doesnt have return result
Any idea why
Code:
 
#!/bin/bash
echo -n "Please provide a product id: "
read id
line=`grep "$id" inventory`
if(($(echo ${#line})==0))
then
{
echo No mach
}
else
{
qty=`echo $line | cut -c6-10`
price=`echo $line | cut -c11-15`    
echo price $price
echo quantity $qty
}
fi


The braces are unnecessary, but don't affect anything.

In bash (and ksh93), you can use the substring expansion instead of the external command, cut:
Code:
if [ -z "$line" ]
then
  echo No match
else
  qty=${line:5:5}
  price=${line:6:5}
  echo price $price
  echo quantity $qty
fi

# 12  
Old 02-03-2011
Quote:
Originally Posted by ghostdog74
as well as bash. it's actually all right to use
OK, but it it should not be regarded as just another way to assign something to a variable:
Code:
$ let x=a
$ echo $x
0
$ x=a
$ echo $x
a


Last edited by Scrutinizer; 02-03-2011 at 02:41 AM..
# 13  
Old 02-03-2011
Quote:
Originally Posted by Scrutinizer
OK, but it it should not be regarded as just another way to assign something to a variable:
Code:
$ let x=a
$ echo $x
0
$ x=a
$ echo $x
a

sure, because after all let is used for arithmetic, since its what OP is doing anyway storing prices, quantities etc. It is still all right to use it in his case.
# 14  
Old 02-03-2011
Quote:
Originally Posted by ghostdog74
sure, because after all let is used for arithmetic, since its what OP is doing anyway storing prices, quantities etc. It is still all right to use it in his case.
There is no good reason for using let. It is not standard, and it adds nothing.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Using read to assign value to bash variable not working

Hi, I am attempting to assign the output of the following command, to two bash variables, var1 and var2 using "read," but it doesn't seem to be working. # openstack hypervisor stats show | awk -F'|' 'NR==14{print $2,$3}' vcpus 92 # echo $? 0 # openstack hypervisor... (4 Replies)
Discussion started by: sand1234
4 Replies

2. UNIX for Beginners Questions & Answers

How do I assign the output of a command to a variable within a loop in bash?

In the else of the main if condition . else set lnk = $(readlink -f <path> | cut -d '/' -f7) echo "$lnk" if ] When I run the above on command line , the execution seems to be fine and I get the desired output. But when I try to assign it to a variable within a loop... (12 Replies)
Discussion started by: sankasu
12 Replies

3. Shell Programming and Scripting

Assign variables to CSV string (bash)

Hi guys, New to the forum, and been messing around with Linux for about a year now. I'm still very much a rookie, so just assume that I'm a total idiot: I currently have a shell that spits out a CSV number string of about 8 numbers as follows: 1.00,2.00,3.00 ... ,8.00I need to assign a... (7 Replies)
Discussion started by: hansol
7 Replies

4. Shell Programming and Scripting

Assign a variable the nth character of a string.

I see a millioin ways to do this with echo, but what I wan to do is assign a variable the "nth" character of an incoming parameter to a ksh script. $1 will be "pia" I need to assign the first character to stmttype. (10 Replies)
Discussion started by: klarue
10 Replies

5. Shell Programming and Scripting

need to assign a string to a variable

Hello Experts, In my script i am using the below syntax /usr/bin/head -1 /opt/chumma.txt | /usr/bin/cut -d " " -f3 output of this one is --> Monday I want to store this String in a variable (i.e) j or k... Give me some idea experts. Thanks in advance. (7 Replies)
Discussion started by: natraj005
7 Replies

6. Shell Programming and Scripting

bash assign mysql query single field to variable

I'm running a bash script query and assigning the output to a variable like this: exists=`mysql -u $USER_NAME --password=$PASSWORD -D "somedb" \ -e "SELECT * FROM somedb.sometable WHERE field1 ='$a' \ AND field2 ='$b' LIMIT 0 , 30";` which returns something like: echo... (2 Replies)
Discussion started by: unclecameron
2 Replies

7. Shell Programming and Scripting

assign awk output to bash variable

greetings all, I am have a heck of a time trying to accomplish a very simple thing. I have an array of "shortname<spaces>id" created from a dscl output. I want to assign shortname=word1 and id=word2. I have tried shortname=$(${textArray} | awk '{print $1}') - and get 'awk : cannot open... (3 Replies)
Discussion started by: macnetdaemon
3 Replies

8. Shell Programming and Scripting

Assign bash command to variable

Hi I am trying to write a function that needs to be able to assign the last run shell command to a variable. The actual command string itself not the exit code of the command. I am using the bash command recall ability to do this as follows: alias pb='ps | grep ash' ... (3 Replies)
Discussion started by: Moxy
3 Replies

9. Shell Programming and Scripting

read and assign each character from the string to a variable

How... can I read input by a user character by cahracter. And assign each character from the string to a variable? Any help would be greatly appreciated! Thank you! (1 Reply)
Discussion started by: Tek-E
1 Replies

10. Shell Programming and Scripting

How to assign variable from a string having blanks in between

Hi All, I am new to bash scripting. I need your help to removing spaces from a string and assign them to different variables. Iwant to call script with one command line argument which is file name which containes different attributes their type and different values eg ... (1 Reply)
Discussion started by: flextronics
1 Replies
Login or Register to Ask a Question