Match O/p of a command


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Match O/p of a command
# 1  
Old 12-13-2013
Match O/p of a command

Hello,

We have a script, when executed it asks for ( it searches servername is portal inventory )

Username
Password

Once's you provide that - if your server name is present in the portal it returns

O/p
PASS Gold correctly registered

My Query is based on above o/p
i want to decide weather to proceed next in script or not
so, if it says PASS then proceed else exit with a message.

I am not able to find a logic to match the o/p word PASS.....

how can i take o/p as input to match condition...any help is appreciated....
# 2  
Old 12-13-2013
Does your script have a return code? If so you could try:
Code:
if script > /dev/null 2>&1; then
  echo "we can proceed"
else
  echo "we cannot"
fi

Or if you need to match "PASS" in the scripts output you could try:
Code:
if script | grep -q PASS; then
 echo "we can proceed"
else
  echo "we cannot"
fi

This User Gave Thanks to Scrutinizer For This Post:
# 3  
Old 12-15-2013
Linux

I tried option 2 as suggested.

Code:
if /home/script/myscript.py | grep -q PASS;
 then
 echo "we can proceed"
else
  echo "we cannot"
fi

Unfortunately, It did not worked..

as It it did not prompt anything ( As, when the script is run - then it prompt for user and password, and when then input is provided - It checks in the portal ( whose credentials we have given ) and return back if found in inventory ]

So, What i have thought is

run the script and provide username and password and when the o/p is given PASS or FAIL - I should take the o/p in a file and grep PASS or FAIL from that...


Now, the issue how to redirect the script o/p to a temporary file....

any suggestions ?





Quote:
Originally Posted by Scrutinizer
Does your script have a return code? If so you could try:
Code:
if script > /dev/null 2>&1; then
  echo "we can proceed"
else
  echo "we cannot"
fi

Or if you need to match "PASS" in the scripts output you could try:
Code:
if script | grep -q PASS; then
 echo "we can proceed"
else
  echo "we cannot"
fi


Last edited by Scrutinizer; 12-15-2013 at 10:43 AM.. Reason: code tags
# 4  
Old 12-15-2013
If you pipe the output to grep (or anything), of course nothing can be prompted to e.g. the screen. Are you able to modify the script? Then prompt to another file descriptor pointing to the screen.
Still the output PASS should be detected by grep and the evaluation thereafter should be OK.
# 5  
Old 12-16-2013
Unfortunately - that script is in python and i am not authorized to edit it . Smilie

looking for another way out
# 6  
Old 12-16-2013
Try
Code:
/home/script/myscript.py | tee /dev/tty | grep -q PASS;

# 7  
Old 12-16-2013
It really would be preferable if you could the one who maintains the script if they could add a return code, then you could try:
Code:
if script; then
  echo "we can proceed"
else
  echo "we cannot"
fi

If not, you could try something like:
Code:
script |
{ 
  found=false 
  while read answ 
  do
    printf "%s\n" "$answ"
    case $answ in 
      (*PASS*) found=true
    esac
  done
  if $found; then 
      echo "we can proceed"
  else
    echo "we cannot"
  fi
}

-- edit --

Indeed in the second case, RudiC's idea would probably be a better suggestion:

Code:
if script | tee /dev/tty | grep -q PASS; then
  echo "we can proceed"
else
  echo "we cannot"
fi


Last edited by Scrutinizer; 12-16-2013 at 02:00 PM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

UNIX Command to Match columns from two csv files

I am joining two CSV files based on 'Server_Name' column, 1st column of first file and 2nd column of second file. If matches, output 1st and 2nd column from first file, 3rd,4th,5th,6th columns from second file. I am expecting output CSV file as below. Could you please send me help me with... (6 Replies)
Discussion started by: Anadmbt
6 Replies

2. Shell Programming and Scripting

Match exact String with sed command

I have a workaround to the problem i m posting, however if someone wants to look at my query and respond ... i will appreciate. This is in reference to this thread -> https://www.unix.com/shell-programming-and-scripting/267630-extract-between-two-exact-matched-strings.html I have data.txt as... (11 Replies)
Discussion started by: mohtashims
11 Replies

3. UNIX for Beginners Questions & Answers

Find command with Metacharacter (*) Should match exact filename

Hi, Below is list of files in my directory. -rw-rw-r--. 1 Roots Roots 0 Dec 26 06:58 12345_kms_report.csv -rw-rw-r--. 1 Roots Roots 0 Dec 26 06:59 12346_kms_report.csv -rw-rw-r--. 1 Roots Roots 0 Dec 26 06:59 12347_kms_report.csv -rw-rw-r--. 1 Roots Roots 0 Dec 26 06:59... (2 Replies)
Discussion started by: Balraj
2 Replies

4. Shell Programming and Scripting

String match, with perl command

cat clinvar_00-latest.vcf | perl -aF/\\t/ -lne '/CLNSRCID=(\d+)/ and print join("\t",@F,$1)' > OMIM.txt The above code finds the text CLNSRCID=, but only outputs those records in which there is a numerical value only. For example, the first match is CLNSRCID=103320.0001 in line 4 of the... (1 Reply)
Discussion started by: cmccabe
1 Replies

5. UNIX Desktop Questions & Answers

[SOLVED] find command match pattern

Hello, I would like to ask you, how to match directory names. I need to find only directories, which are created only from numbers and doesn't include any letters. I used command find $AC_WORKDIR/work_archive/test/$dirs_years -maxdepth 1 -name \\* -print If I have dirs like 12... (3 Replies)
Discussion started by: satin1321
3 Replies

6. Shell Programming and Scripting

command to match ethernet port to network card

hi I juts want to know if there is a command that checks if an ethernet port corresponds to a network card. ex. I have 3 network cards, one is two ports, and the other two 8 ports. How do I know that eth0 corresponds to the the two-port network card and eth9 corresponds to the first 8-port... (2 Replies)
Discussion started by: h0ujun
2 Replies

7. Shell Programming and Scripting

Logic Explanation of Match command in Linux

I am debugging a script and have stuck up at one code line awk -F , '{if (match($3,001)) { print $2 } }' Master20120307090511.tmp The Master20120307090511.tmp is 001,ARE , 001 002,ARE , 002 003,ARE , 003 006,ARE , 006 011,ARE , 011 012,ARE , 012 What happens is when i fire this ... (5 Replies)
Discussion started by: vee_789
5 Replies

8. Shell Programming and Scripting

match 2 files using nawk command

i am matching two files. the files are in the format file_1.txt 1|_|X|_| 2|_|W|_| 3|_|Y|_| 4|_|Z|_| 5|_|U|_| file_2.txt W|_|A|_| Z|_|C|_| V|_|B|_| X|_|D|_|sdff|_| Y|_| file_3.txt should be in the format (4 Replies)
Discussion started by: centurion_13
4 Replies

9. Shell Programming and Scripting

sed command to match log entries

Hello, I would like to write a sed comman dwith pattern matching .to match those record which have some character(userd id) present in it. Example : Logfile contents -- 127.0.0.1 - - "POST /cgi-bin/cgi-module-example.pl HTTP/1.1" 200 1866 127.0.0.1 - - "POST... (4 Replies)
Discussion started by: jambesh
4 Replies

10. Shell Programming and Scripting

how to use a command in sed s/match/replacement

hi, how can i make use of a command in the replacement segment.. cat a | sed '/^*]\{3\}$/{ s/\(.*\)/REPLACEMENT/g }' suppose if I want to use a awk command in the replacement section , how to achieve that ? Thanks (1 Reply)
Discussion started by: AbhishekG
1 Replies
Login or Register to Ask a Question