Visit Our UNIX and Linux User Community


Assign expression to a variable


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Assign expression to a variable
# 1  
Old 05-17-2017
Assign expression to a variable

This code strips out any []. It works great
Code:
echo "127[.]0[.]0[.]1" | tr -d "[]"

I would like to do the same thing but with shell scripting. User would enter:
Code:
./test 127[.]0[.]0[.]1

Output should be: 127.0.0.1
I would like to assign it to a different variable. I have something like this but I get a syntax error and I'm not sure why.
Code:
#!/bin/bash
a=$1 | tr -d "[]"
echo $a

This works just fine:
Code:
echo $1 | tr -d "[]"

But I would like to assign it to a variable and I don't know how.
# 2  
Old 05-17-2017
Hello Loc,

Could you please try following and let me know if this helps you.
Code:
cat script.ksh
VAR=$(echo $1 | tr -d "[]")
echo $VAR

So following will be output while running it.
Code:
./script.ksh 127[.]0[.]0[.]1
127.0.0.1

Thanks,
R. Singh
# 3  
Old 05-17-2017
I thought it would display the output twice because you used echo twice but it's not the case. This works great. thank you
# 4  
Old 05-17-2017
Quote:
Originally Posted by Loc
I thought it would display the output twice because you used echo twice but it's not the case. This works great. thank you
That's what the $( ... ) brackets do, they capture output so you can assign it to something.
# 5  
Old 05-17-2017
How about pure shell (Parameter Expansion : Pattern substitution):

Code:
echo $1, ${1//[][]}
127[.]0[.]0[.]1, 127.0.0.1

This User Gave Thanks to RudiC For This Post:
# 6  
Old 05-18-2017
I guess you mean

Code:
./script.ksh '127[.]0[.]0[.]1'

instead of

Code:
./script.ksh 127[.]0[.]0[.]1

because without the quotes, your script would not see the brackets.
# 7  
Old 05-18-2017
Quote:
Originally Posted by rovf
I guess you mean

Code:
./script.ksh '127[.]0[.]0[.]1'

instead of

Code:
./script.ksh 127[.]0[.]0[.]1

because without the quotes, your script would not see the brackets.
Hi rovf,
If, and only if, there is a file named 127.0.0.1 in the directory in which you invoke the command:
Code:
./script.ksh 127[.]0[.]0[.]1

then the shell would start script.ksh with $1 set to 127.0.0.1. Otherwise, the shell would start script.ksh with $1 set to 127[.]0[.]0[.]1.

With the specific code suggested in this thread in posts #2 and #5, the output produced would be identical if the input operand is single-quoted, double-quoted, backslash-escaped, or unquoted.
This User Gave Thanks to Don Cragun For This Post:

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Assign value to variable

Hi Guys, I need to assign the value of which has rows to a variable, Can you advise how to do that hive --orcfiledump /hdfs_path/ | grep "Rows" Rows: 131554 I need to assign this row count itself to a unix variable count=$(hive --orcfiledump /hdfs_path/ | grep "Rows") Expected ... (6 Replies)
Discussion started by: Master_Mind
6 Replies

2. UNIX for Beginners Questions & Answers

How can I assign awk's variable to shell script's variable?

I have the following script, and I want to assign the output ($10 and $5) from awk to N and L: grdinfo data.grd | awk '{print $10,$5}'| read N L output from gridinfo data.grd is: data.grd 50 100 41 82 -2796 6944 0.016 0.016 3001 2461. where N and L is suppose to be 3001 and 100. I use... (8 Replies)
Discussion started by: geomarine
8 Replies

3. Shell Programming and Scripting

How to assign result of boolean expression?

Hello I would to write the test on one line like : declare -i x=0 y=0 ........ some code assign value 0 or 1 to x and y ........ # if either x or y or both is set to 1, then do something if -o ; then do_something fi Any help is welcome (2 Replies)
Discussion started by: jcdole
2 Replies

4. UNIX for Beginners Questions & Answers

Need to pass variable in a command and assign value to a variable

Hello All, Hope you're doing well ! I am trying below command to be passed in a shell script, header_date_14 is a variable and $1 is the name of a file I intend to pass as a command line argument, however command line argument is not being accepted. header_date_14=$(m_dump... (8 Replies)
Discussion started by: ektubbe
8 Replies

5. Shell Programming and Scripting

Assign regular expression change to only first two columns

input 1_2 2_3 4_4 4_5 2_2 4_5 4_4 5_5 output 1 2 2 3 4_4 4_5 2 2 4 5 4_4 5_5 I used the following command but it changes every column. i just want to change first two. tr '_' '\t' (7 Replies)
Discussion started by: quincyjones
7 Replies

6. Shell Programming and Scripting

Shell assign variable to another variable

How can I assign a variable to an variable. IE $car=honda One way I can do it is export $car=honda or let $car=2323 Is there any other ways to preform this task (3 Replies)
Discussion started by: 3junior
3 Replies

7. Shell Programming and Scripting

assign awk's variable to shell script's variable?

Dear All, we have a command output which looks like : Total 200 queues in 30000 Kbytes and we're going to get "200" and "30000" for further process. currently, i'm using : numA=echo $OUTPUT | awk '{print $2}' numB=echo $OUTPUT | awk '{print $5}' my question is : can I use just one... (4 Replies)
Discussion started by: tiger2000
4 Replies

8. Shell Programming and Scripting

Assign this to a variable....

bash-3.00$ /usr/bin/netstat -an -f inet | awk -F' ' '{if ($1$4 == "tcp*.21")print $5}' *.* bash-3.00$ A=` /usr/bin/netstat -an -f inet | awk -F' ' '{if ($1$4 == "tcp*.21")print $5}'` bash-3.00$ echo $A db2_lastdone.bkp As you can see ,after running command i get *.* in return but the same... (5 Replies)
Discussion started by: ak835
5 Replies

9. Shell Programming and Scripting

Not able to assign a value to variable

Hi Experts, I am facing some problem while developing the script.My input config.csv file contains the three columns namely pathname,filename,filetype.Based on the file type i have to use ftp command that is if filetype=csv then do ftp. The input file is cat config.csv... (13 Replies)
Discussion started by: Amey Joshi
13 Replies

10. Shell Programming and Scripting

assign a value to variable

I have to assign a result of a query to a vairable like this how can i do this Query = select count(*) from table x=`db2 ${Query}| sed -n '4p'` but this doesn't work, is there any other way to assign the result without redirecting the result to temp file. . Thanks Mark. (3 Replies)
Discussion started by: markjason
3 Replies

Featured Tech Videos