Visit The New, Modern Unix Linux Community


How to print last character of hostname and assign to a variable ?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to print last character of hostname and assign to a variable ?
# 1  
How to print last character of hostname and assign to a variable ?

Hi

How to pass echo output to a variable ?

Does below awk command will get the last character of hostname and assign to a variable - "svr" ?

Code:
svr=$( echo `hostname` | awk '{print substr($0,length,1)}' )

Thanks.
Moderator's Comments:
Mod Comment Please use CODE tags when dsplaying code segments, sample input, and sample output.

Last edited by Don Cragun; 04-16-2019 at 11:37 AM.. Reason: Add CODE and ICODE tags.
# 2  
Yes it works.
Without the echo command it simplifies to
Code:
 svr=$( hostname | awk '{ print substr($0,length,1) }' )

or apply two variable modifiers
Code:
h=$(hostname); t=${x%?}; svr=${h#$t}

% chops from the end. ? is one character.
# chops from the beginning. $t is from the previous assignment.
# 3  
Hello Lim,

Welcome to forums, the BEST way to know any command's output is run it, you could have run it in your box.
You were close, try following to get last character of hostname.

Code:
hostname | awk '{print substr($0,length($0))}'

To save it in a variable use(note that backticks are depreciated so use $ instead to store values into variables too):
Code:
var=$(hostname | awk '{print substr($0,length($0))}')

Thanks,
R. Singh
# 4  
Most if not all awk versions have length() default to $0.
So you can say length() and even length.
Likewise, in substr() the 3rd parameter defaults to "unlimited", so can be omitted here, because there is only 1 character left.
This User Gave Thanks to MadeInGermany For This Post:
# 5  
Quote:
Originally Posted by MadeInGermany
... or apply two variable modifiers
Code:
h=$(hostname); t=${x%?}; svr=${h#$t}

% chops from the end. ? is one character.
# chops from the beginning. $t is from the previous assignment.
No need to use temp variable:

Code:
$ HN=$(hostname)
$ echo ${HN#${HN%?}}

This User Gave Thanks to RudiC For This Post:
# 6  
Thanks all
This User Gave Thanks to Lim For This Post:
# 7  
Quote:
Originally Posted by Lim
Thanks all
Hello Lim,

Appreciate that your are trying to encourage people by thanking them in a post, very good. For THANKING people we do have a mechanism called "THANKS" button at side of each posts's left corner, so you could HIT it for any post which you LIKE/which was helpful.

Thanks for posting in UNIX & LINUX forums, keep learning and keep sharing on this great site, cheers.

Thanks,
R. Singh

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Computers #956
Difficulty: Medium
A polymorphic virus infects files with an encrypted copy of itself which is decoded by a decryption module which is modified on each infection.
True or False?

10 More Discussions You Might Find Interesting

1. 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

2. 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

3. Shell Programming and Scripting

Remove a character and assign result to a variable

I am reading lines from a file that contain a number sign (#) before a three or four digit number: #1043 #677 I can remove the '#' and get just the number. However, I then want to assign that number to a variable and use it as part of a path further on in my program: /mydir/10/1043 for... (5 Replies)
Discussion started by: KathyB148
5 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. Programming

Unable to assign zero to unsigned character array

Hi, I am unable to assign value zero to my variable which is defined as unsigned char. typedef struct ABCD { unsigned char abc; unsigned char def; unsigned char ghi; } ABCD; typedef ABCD *PABCD; In my Por*C code, i assign the values using memcpy like below ... (3 Replies)
Discussion started by: gthangav
3 Replies

6. Shell Programming and Scripting

read the text file and print the content character by character..

hello all i request you to give the solution for the following problem.. I want read the text file.and print the contents character by character..like if the text file contains google means..i want to print g go goo goog googl google like this Using unix Shell scripting... without using... (1 Reply)
Discussion started by: samupnl
1 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

print ip to hostname with array

Hi Anyone can help me??i writing a perl using array to translate ip address to the hostname my script are below.this line print "$myhost{$ipaddr}\n"; blank :mad:hostname dint come out:mad::mad: #!/usr/local/bin/perl @ipaddr=("192.1.168.2","172.25.1.13","129.1.2.5"); %myhost = { 192.1.168.2... (4 Replies)
Discussion started by: netxus
4 Replies

9. Shell Programming and Scripting

Print the first four characters of hostname

Hey, I'm trying to print the first four characters of the hostname of a computer. I can get it from using: hostname -s | sed 's/...........$//'" but this is when I know how many characters are in the computer name. I dont understand why some like: hostname -s | sed '/..../p' wont... (7 Replies)
Discussion started by: yxian
7 Replies

10. 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

Featured Tech Videos