Issues with 'expr'


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Issues with 'expr'
# 1  
Old 04-08-2013
Issues with 'expr'

Hi,

I have a text file where i define all the inputs to my shell script:
Code:
IP=1.2.3.4
PC=1234

In the shell script, i am trying to read the input variables from the above mentioned text file:

Code:
#!/bin/bash
#usage
IP=expr cat /tmp/input.txt | grep IP| cut -d "=" -f2
PC=expr cat /tmp/input.txt | grep PC | cut -d "=" -f2

echo "machine=$IP, PC=$PC"

But, i am getting the output as machine= , PC=

The correct values are not displayed

Last edited by Scrutinizer; 04-08-2013 at 03:27 AM.. Reason: code tags
# 2  
Old 04-08-2013
Quote:
Originally Posted by akarnya
#!/bin/bash
#usage
IP=expr cat /tmp/input.txt | grep IP| cut -d "=" -f2
PC=expr cat /tmp/input.txt | grep PC | cut -d "=" -f2

echo "machine=$IP, PC=$PC"
Why you need expr here..?

just use

Code:
IP=$(grep IP /tmp/input.txt | cut -d "=" -f2)
PC=$(grep PC /tmp/input.txt | cut -d "=" -f2)

This User Gave Thanks to pamu For This Post:
# 3  
Old 04-08-2013
Thank you Smilie .. it works
# 4  
Old 04-08-2013
Why not source input.txt ?
Code:
source /tmp/input.txt
echo "machine=$IP, PC=$PC"

There are carriage returns in your input file. Convert to UNIX format first:
Code:
tr -d '\r' < infile > outfile


Last edited by Scrutinizer; 04-08-2013 at 03:38 AM..
# 5  
Old 04-08-2013
Quote:
Originally Posted by akarnya
Hi,

I have a text file where i define all the inputs to my shell script:
IP=1.2.3.4
PC=1234

In the shell script, i am trying to read the input variables from the above mentioned text file:

#!/bin/bash
#usage
IP=expr cat /tmp/input.txt | grep IP| cut -d "=" -f2
PC=expr cat /tmp/input.txt | grep PC | cut -d "=" -f2

echo "machine=$IP, PC=$PC"

But, i am getting the output as machine= , PC=

The correct values are not displayed
I'm very surprised that you didn't get diagnostic messages from your shell pointing out that expr cat /tmp/input.txt is a syntax error; the expr utility does not have a cat operator.
Change:
Code:
IP=expr cat /tmp/input.txt | grep IP| cut -d "=" -f2
PC=expr cat /tmp/input.txt | grep PC | cut -d "=" -f2

to:
Code:
. /tmp/input.txt

 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Nn$( expr $n + 1)

HI there I am trying to understand Shell scripting to create my own, I am attempting a few examples can anyone tell me what this means?n=$( expr $n + 1)Tried looking on the internet, but just cannot find its anywhere :( .Help please (4 Replies)
Discussion started by: steve2015
4 Replies

2. Shell Programming and Scripting

If + expr

Hi I have bellow script: t1=`cat node1.txt | grep thread1 | cut -f2 -d '-'` t2=`cat node2.txt | grep thread2 | cut -f2 -d '-'` t3=`cat node1_rcat.txt | grep thread1 | cut -f2 -d '-'` t4=`cat node2_rcat.txt | grep thread2 | cut -f2 -d '-'` if ]; then echo "no restore" >> log.log... (6 Replies)
Discussion started by: primo102
6 Replies

3. Shell Programming and Scripting

Error with expr - "expr: syntax error"

Hi All, I'm writing a shell script in KSH, where I want to store the filename, total record count and actual record count of all the source files. The source files reside in 4 different sub-folders under the same root folder. Below is code: #!/usr/bin/ksh... (6 Replies)
Discussion started by: jagari
6 Replies

4. UNIX for Dummies Questions & Answers

expr ?!

Hey there i want to subtract the content from $b from $a. Each variable has got 18 values (normal numbers from 0 - 99). How can i subtract them? I know i have to use the expr command, this is what i have till now: a=`cat Tabelle.dat | awk {'print $4'} | awk -F: {'print $1'}` b=`cat... (1 Reply)
Discussion started by: Mad van Bert
1 Replies

5. Shell Programming and Scripting

the expr \*

$ cat > mtable #!/bin/sh # #Script to test for loop # # if then echo "Error - Number missing form command line argument" echo "Syntax : $0 number" echo "Use to print multiplication table for given number" exit 1 fi n=$1 for i in 1 2 3 4 5 6 7 8 9 10 do echo "$n * $i = `expr $i \*... (1 Reply)
Discussion started by: jackel7777
1 Replies

6. Shell Programming and Scripting

Issues with expr command on Solaris Box

Hello Friends, I have written a code on a Linux box, however, am getting issues while running it on a Solaris server. The issue with Sed command is sortd out, however, am still lokking for solutions with expr command. Here is the issue, Linux : bash-2.03$ expr match singh@test.com... (10 Replies)
Discussion started by: suffisandy
10 Replies

7. Shell Programming and Scripting

test expr VS [ expr ]

What is the difference between test expr VS . For example : if test 5 -eq 6 echo "Wrong" and if echo "Wrong" bot will give the same output as Wrong. Now, what is the difference between these two? though they are producing the same result why we need two? Any answer will be... (2 Replies)
Discussion started by: ashok.g
2 Replies

8. Shell Programming and Scripting

Expr issues

I have two variables that are set by a number i.e. recs_on_db=12 yesterdays_recs_on_db=10 i need to get the difference between the two and be able to set this in a variable I have tried expr but does not work: db_difference=`expr $recs_on_db - $yesterdays_recs_on_db` i get: expr:... (2 Replies)
Discussion started by: Pablo_beezo
2 Replies

9. Red Hat

how to use expr

i am new to shell programming, currently using redhat linux of version 2.4.20-8. i have problem in executing expr command in the following shell script $ x=5 $ x='expr $x + 1' $ echo $x the output is displaying always expr $x + 1 Pls guide me for the above query (3 Replies)
Discussion started by: saikumarm80
3 Replies

10. UNIX for Dummies Questions & Answers

expr

Hello! I want to evaluate some mathematical expressions in a script and I try to use 'expr' command. Unfortunatally, when I have, for example, expr 8.2 + 6 the result is 'expr: non-numeric argument' Why ? I work on SunOs 5.7. Thanks in advance Nathe (5 Replies)
Discussion started by: Nathe
5 Replies
Login or Register to Ask a Question