Solved

shell script

Posted on 2014-02-13
14
327 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
14 Comments
 
LVL 31

Accepted Solution

by:
farzanj earned 99 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 99 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
 

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
Better Security Awareness With Threat Intelligence

See how one of the leading financial services organizations uses Recorded Future as part of a holistic threat intelligence program to promote security awareness and proactively and efficiently identify threats.

 
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 37

Assisted Solution

by:Gerwin Jansen
Gerwin Jansen earned 98 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 26

Assisted Solution

by:skullnobrains
skullnobrains earned 99 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 37

Expert Comment

by:Gerwin Jansen
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 37

Expert Comment

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

Featured Post

Free Trending Threat Insights Every Day

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

Suggested Solutions

Using 'screen' for session sharing, The Simple Edition Step 1: user starts session with command: screen Step 2: other user (logged in with same user account) connects with command: screen -x Done. Both users are connected to the same CLI sessio…
Little introduction about CP: CP is a command on linux that use to copy files and folder from one location to another location. Example usage of CP as follow: cp /myfoder /pathto/destination/folder/ cp abc.tar.gz /pathto/destination/folder/ab…
Learn how to find files with the shell using the find and locate commands. Use locate to find a needle in a haystack.: With locate, check if the file still exists.: Use find to get the actual location of the file.:
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.

747 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

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now