?
Solved

shell script

Posted on 2014-02-13
14
Medium Priority
?
338 Views
Last Modified: 2014-03-20
This is perl, v5.8.9 built for i386-thread-multi

Copyright 1987-2008, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl".  If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.

I want to grep the version and compare to make sure it is 5.8.9.  How do we do that in shell script
0
Comment
Question by:ittechlab
  • 4
  • 3
  • 3
  • +3
13 Comments
 
LVL 31

Accepted Solution

by:
farzanj earned 396 total points
ID: 39857497
version=$(perl -v | grep -Po '\d+\.\d+\.\d+')
if [[ $version == "5.8.9" ]]
then
     echo yes
fi

Open in new window

0
 

Author Comment

by:ittechlab
ID: 39857517
can you please explain this first line i am not sure how \d+ works here.
0
 
LVL 68

Assisted Solution

by:woolmilkporc
woolmilkporc earned 396 total points
ID: 39857526
The usual one-liner with awk:

perl -v | awk -F"This is perl, v| built for" '/built for/ {if($2~"5.8.9") print "yes"}'
0
Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

 

Author Comment

by:ittechlab
ID: 39857532
how do i check if this 32 bit or 64 bit as well?
0
 
LVL 68

Expert Comment

by:woolmilkporc
ID: 39857551
file $(which perl)

/usr/bin/perl: ELF 64-bit LSB executable, x86-64,  ... ...
0
 

Author Comment

by:ittechlab
ID: 39857616
how do i check using script?
0
 
LVL 68

Expert Comment

by:woolmilkporc
ID: 39857638
if file $(which perl) |grep -q "64-bit"; then echo yes; fi
0
 
LVL 48

Expert Comment

by:Tintin
ID: 39857656
wmc, your check doesn't work for all versions, eg:

$ perl -v

This is perl 5, version 16, subversion 2 (v5.16.2) built for darwin-thread-multi-2level
(with 3 registered patches, see perl -V for more detail)

Copyright 1987-2012, Larry Wall
0
 
LVL 38

Assisted Solution

by:Gerwin Jansen, EE MVE
Gerwin Jansen, EE MVE earned 392 total points
ID: 39857757
>> can you please explain this first line i am not sure how \d+ works here.

\d+ is part of the regular expression that is grepped for, it means one or more digits (numbers), pattern '\d+\.\d+\.\d+' matches 1.2.3 or 5.8.9 or 10.20.30

\. is a literal dot (.) in the pattern
0
 
LVL 27

Assisted Solution

by:skullnobrains
skullnobrains earned 396 total points
ID: 39886620
if perl -v | grep -f 'v5.8.9 ' >/dev/null
then echo happy
else echo unhappy
fi

if you want it to check for i386 as well

if perl -v | grep 'v5\.8\.9[[:space:]].*i386' >/dev/null
then echo happy
else echo unhappy
fi
0
 
LVL 38

Expert Comment

by:Gerwin Jansen, EE MVE
ID: 39931829
Why the B grade? You got perfect answers and some additional explanation as well. This should be graded A.
0
 

Author Comment

by:ittechlab
ID: 39931837
How do I change it now.
0
 
LVL 38

Expert Comment

by:Gerwin Jansen, EE MVE
ID: 39931919
You can use the Request Attention button above and state you want to change the grade.
0

Featured Post

Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Join Greg Farro and Ethan Banks from Packet Pushers (http://packetpushers.net/podcast/podcasts/pq-show-93-smart-network-monitoring-paessler-sponsored/) and Greg Ross from Paessler (https://www.paessler.com/prtg) for a discussion about smart network …
Often times it's very very easy to extend a volume on a Linux instance in AWS, but impossible to shrink it. I wanted to contribute to the experts-exchange community a way of providing a procedure that works on an AWS instance. It can also be used on…
This demo shows you how to set up the containerized NetScaler CPX with NetScaler Management and Analytics System in a non-routable Mesos/Marathon environment for use with Micro-Services applications.
How to Install VMware Tools in Red Hat Enterprise Linux 6.4 (RHEL 6.4) Step-by-Step Tutorial

585 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question