using perl in a shell script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting using perl in a shell script
# 1  
Old 06-30-2008
using perl in a shell script

my database
deepak 23/12 43536
deepika 23/12 675858


my program


echo "Enter your friend's name"

read FRIEND
found=no
cat database | while read LINE
do
if [ `perl -e ' $LINE =~ /^$FRIEND/' ];then

candidate=$(echo $LINE | cut -d ' ' -f1)
birthday=$(echo $LINE | cut -d ' ' -f2)
found=yes
sleep 1
echo "your friend $candidate 's birthday is on $birthday "
fi

done

if [ $found = no ];then

echo "Sorry no match found"

fi
*****
user gives a name as input..and i want to check in each line of my database file whether there is a match or not and then only do the cut section
***
In this program how can i use perl to check for a match with the user given input

the perl section is not working for me ...i doubt some syntaxial error
# 2  
Old 06-30-2008
end of backquote is missing under if condition...

better way to do the same:

$ret=`perl -e ' $LINE =~ /^$FRIEND/i'`
if [ $ret ];then
...
code
.....
# 3  
Old 06-30-2008
still not solved

my changed program

#! /usr/bin/bash
set -x
echo "Enter your friend's name"

read FRIEND
found=no
cat database | while read LINE
do
MATCH= `/users/rdlogche/col_solaris/perl -e $LINE =~ "/^$FRIEND/"`
if [ $MATCH ];then

candidate=$(echo $LINE | cut -d ' ' -f1)
birthday=$(echo $LINE | cut -d ' ' -f2)
found=yes
sleep 1
echo "your friend $candidate 's birthday is on $birthday "
fi

done

if [ $found = no ];then

echo "Sorry no match found"

fi



the output with set -x

csbu061 [mhalder] 396: ./bday_search_name
+ echo 'Enter your friend'\''s name'
Enter your friend's name
+ read FRIEND
a
+ found=no
+ cat database
+ read LINE
++ /users/rdlogche/col_solaris/perl -e a 12/23 23233 '=~' '/^a/'
+ MATCH=
+ '[' ']'
+ read LINE
++ /users/rdlogche/col_solaris/perl -e b 23/34 8474674 '=~' '/^a/'
+ MATCH=
+ '[' ']'
+ read LINE
++ /users/rdlogche/col_solaris/perl -e c 34/45 64784849 '=~' '/^a/'
+ MATCH=
+ '[' ']'
+ read LINE
++ /users/rdlogche/col_solaris/perl -e d 45/23 74847464 '=~' '/^a/'
+ MATCH=
+ '[' ']'
+ read LINE
+ '[' no = no ']'
+ echo 'Sorry no match found'
Sorry no match found
# 4  
Old 06-30-2008
why do you need to use Perl for that?
Code:
#!/bin/bash
set -x
echo "Enter your friend's name"
read FRIEND
found=no
while read LINE
do
 case $LINE in 
 ${FRIEND}* ) 
     CANDIDATE=$(ECHO $LINE | CUT -D ' ' -F1)
     BIRTHDAY=$(ECHO $LINE | CUT -D ' ' -F2)
     FOUND=YES
     SLEEP 1
     ;;
 * ) echo "DSFSDFS";;
 esac
done < "file"
...

# 5  
Old 06-30-2008
little querry

ghostdog74


thanks for the sollution but if at all i want to do it using perl can it be done the way i have shown
and if so where the error is occurring
# 6  
Old 06-30-2008
One problem is that when you type
Code:
perl -e ' $LINE =~ /^$FRIEND/'

you pass the string in single quotes to Perl to executed. The single quotes prevents the shell from expanding those variables. Perl just sees two (unitiialised) Perl variables i.e. empty strings.
Another is, what do you expect to capture from the backticks? You haven't told Perl to print anything, Try running that Perl command on the command line on its own.

Basically, ghostdog74 is right: this would be easier if it were all done in one language.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Using Shell Script in place of Perl script to Unzip the zip files.

Hi Expert, We have some shell scripts which Internally uses Perl Script to Unzip the source zip files which comes to inbound directory. So now our requirement is to avoid the dependency on Perl Script and us Shell Script to unzip the files. I have the Perl script with me attached can some one... (3 Replies)
Discussion started by: naveen.dasu
3 Replies

2. Shell Programming and Scripting

How to capture the exit code of a shell script in a perl script.?

hi, i want to pop up an alert box using perl script. my requirement is. i am using a html page which calls a perl script. this perl script calls a shell script.. after the shell script ends its execution, i am using exit 0 to terminate the shell script successfully and exit 1 to terminate the... (3 Replies)
Discussion started by: Little
3 Replies

3. Shell Programming and Scripting

calling a shell script present on another server using perl script.

Hi, I am working on a sever A. I want to write a perl script to execute a shell script persent on the server B. please help me in this. thanks in advance. (3 Replies)
Discussion started by: anandgodse
3 Replies

4. Shell Programming and Scripting

How we can pass the argument when calling shell script from perl script

Can someone let me know how could I achieve this In one of per script I am calling the shell script but I need to so one thing that is one shell script call I need to pass pne argument.In below code I am calling my ftp script but here I want to pass one argument so how could I do this (e.g:... (5 Replies)
Discussion started by: anuragpgtgerman
5 Replies

5. Shell Programming and Scripting

HELP on Perl array / sorting - trying to convert Korn Shell Script to Perl

Hi all, Not sure if this should be in the programming forum, but I believe it will get more response under the Shell Programming and Scripting FORUM. Am trying to write a customized df script in Perl and need some help with regards to using arrays and file handlers. At the moment am... (3 Replies)
Discussion started by: newbie_01
3 Replies

6. Shell Programming and Scripting

shell script to call perl script problems

Ok, don't ask me why, but all calls to perl must be called by a shell script. Its really not ideal, but its what I have to work with. Calling it isnt the issue, its passing in the arguments. I have about 1000 perl scripts to call by a shell script. Right now, I'm executing the shell script... (3 Replies)
Discussion started by: regexnub
3 Replies

7. Shell Programming and Scripting

perl script to check if empty files are created and delete them and run a shell script

I have a local linux machine in which the files are dumped by a remote ubuntu server. If the process in remote server has any problem then empty files are created in local machine. Is there any way using perl script to check if the empty files are being created and delete them and then run a shell... (2 Replies)
Discussion started by: hussa1n
2 Replies

8. Shell Programming and Scripting

Perl script 'system' linking to local shell script not working

Trying to figure out why this works: printpwd.pl #!/usr/bin/perl use CGI::Carp qw( fatalsToBrowser ); print "Content-type: text/html\n\n"; $A = system("pwd"); $A = `pwd`; print "$A\n"; ^^actually that works/breaks if that makes any sense.. i get the working directory twice but when... (5 Replies)
Discussion started by: phpfreak
5 Replies

9. Shell Programming and Scripting

call shell script from perl cgi script problem

hi,, i have perl scipt with line : system('./try.sh $t $d $m'); in shell scipt try.sh i have the line: echo $1 its not printing value of $t that i hav passed..y is it so..i am running it from apache web server (2 Replies)
Discussion started by: raksha.s
2 Replies

10. Shell Programming and Scripting

How to Run a shell script from Perl script in Parent shell?

Hi Perl/UNIX experts, I have a problem in running a shell script from my perl script (auto.pl). I run the perl script using perl auto.pl from the shell prompt The shell script picks the files in "input" folder and procesess it. The shell script blue.sh has this code. export... (16 Replies)
Discussion started by: hifake
16 Replies
Login or Register to Ask a Question