Solved

shell script

Posted on 2014-02-13
14
330 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
Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

 

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

Migrating Your Company's PCs

To keep pace with competitors, businesses must keep employees productive, and that means providing them with the latest technology. This document provides the tips and tricks you need to help you migrate an outdated PC fleet to new desktops, laptops, and tablets.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

SSH (Secure Shell) - Tips and Tricks As you all know SSH(Secure Shell) is a network protocol, which we use to access/transfer files securely between two networked devices. SSH was actually designed as a replacement for insecure protocols that sen…
How to remove superseded packages in windows w60 or w61 installation media (.wim) or online system to prevent unnecessary space. w60 means Windows Vista or Windows Server 2008. w61 means Windows 7 or Windows Server 2008 R2. There are various …
Learn how to get help with Linux/Unix bash shell commands. Use help to read help documents for built in bash shell commands.: Use man to interface with the online reference manuals for shell commands.: Use man to search man pages for unknown command…
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.:

776 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