Script Output Displays Multiple Text


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Script Output Displays Multiple Text
# 1  
Old 12-14-2017
Script Output Displays Multiple Text

Hello there,

I'm using a read-while loop to preserve the word Failed within a text file. For example, if the word Failed exist twice in a single text file, my STDOUT should re-direct to a new text file and display Failed twice.

My output is attached to this thread. I would like output to display only 5 lines not 20 lines. Based on my script, my echo command is only calling variable one time, not four times, according to script output.

Below is my script:
Code:
 #!/bin/bash

var="TestServer"
file="/usr/local/bin/Production/ESXiTestServer/cron.log"
go=$(grep 'Failed' "$file")

while read line; do
echo "from:me
subject:Failure on $var
message:${go}" >> mywindowsfile.txt

# Convert linux txt file to Windows txt format
awk 'sub("$", "\r")' mywindowsfile.txt > mywindows.txt

done < "$file"

I don't know exactly what is going on with output. Any suggestions on how to fix my output. My goal is to have output look like this:
Code:
from:TestServer@email.com
subject:Failure on TestServer
message: Physicaldrive 1I:1:2 (port 1I:box 1:bay 2, SAS, 36 GB, Failed)
              Physicaldrive 1I:1:2 (port 1I:box 1:bay 2, SAS, 36 GB, Failed)




Script Output Displays Multiple Text-outputpng

Last edited by Scrutinizer; 12-14-2017 at 03:54 AM.. Reason: Attached file; mod: additional code tags
# 2  
Old 12-14-2017
You are using a while read loop that takes the input of the file. So it echoes the 5 output lines x the number of lines in the file, so there appear to be 4 lines in the file.

Just leave out the loop. It serves no purpose here..
This User Gave Thanks to Scrutinizer For This Post:
# 3  
Old 12-14-2017
Thank you Scrutinizer for replying to my thread.

You are correct if I "Just leave out the loop".
script executes correctly, and its what am trying to achieve. But, if Failed doesn't exist, script will output a blank line and create a text file.

The reason why I'm using a while-loop is because if Failed isn't found, the script should exit and close program without creating a text file. So in other words, if Failed isn't found, script ends and exits. If Failed is found then re-direct output and send to text file.

How can I achieve this using a while-loop?
# 4  
Old 12-14-2017
Don't use a while loop - use an if construct.
# 5  
Old 12-20-2017
Quote:
Originally Posted by RudiC
Don't use a while loop - use an if construct.
Thank you RudiC. I removed while statement and replaced with
Code:
if [ `$a | grep -c "Failed" -gt 0 ]

and script was able to copy standard output "Failed" on to a single text file when Failed was found on a log file.

Thanks again for all your help.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to save the 'nmon' output to a text file with a script?

Hi all, I want to do an Unix Script to save the 'nmon' output on a text file and I don't know how to do it. I need a Script for each monitoring and also one to multiple monitorings. Thanks (6 Replies)
Discussion started by: Javi1990
6 Replies

2. Shell Programming and Scripting

Script that displays contents of a directory

Hello all! I am writing a script that takes in a directory name as input and if the directory exists, it shows the files inside the directory here is what I have so far (incomplete) (mostly like pseudocode) #/bin/sh echo Please enter the name of a directory read dir grep $dir... (2 Replies)
Discussion started by: subway69
2 Replies

3. Shell Programming and Scripting

Displays the text upward

I need to print out text from a file in the console up, you know someone like that? (8 Replies)
Discussion started by: gizmo16
8 Replies

4. Solaris

ls -l displays output with an error

when i use ls command it works normal but when i using additional parameter with ls like ls -l , ls -a... it shows a error followed by the output. # ls -l ./hgfs: Operation not applicable total 12861 -rw-r--r-- 1 root root 0 Jun 1 21:12 1 drwxr-xr-x 2 root root ... (4 Replies)
Discussion started by: chidori
4 Replies

5. Shell Programming and Scripting

sql output from multiple rows and columns as variables in a script

This is for an Oracle journal import. I was using a pl/sql package and oracle API's. Oracle added invoker rights to their API's and now my package won't run. I didn't want to use their API's anyway. The only reason i was using pl/sql and the API's (just a package) was to utilize a cursor. How... (2 Replies)
Discussion started by: lmu
2 Replies

6. UNIX for Dummies Questions & Answers

single output of awk script processing multiple files

Helllo UNIX Forum :) Since I am posting on this board, yes, I am new to UNIX! I read a copy of "UNIX made easy" from 1990, which felt like a making a "computer-science time jump" backwards ;) So, basically I have some sort of understanding what the basic concept is. Problem Description:... (6 Replies)
Discussion started by: Kasimir
6 Replies

7. UNIX for Dummies Questions & Answers

Creating a file that contains output from a command, and then displays itself

hey, I'm trying to create the command that will create a file named user.txt that contains the output of the command cut -d: -f1,5 /etc/passwd, and displays itself afterwards. I don't know how to bridge cat > user.txt with cut -d: -f1,5 /etc/passwd, or how display it afterwards. Any help would... (2 Replies)
Discussion started by: raidkridley
2 Replies

8. AIX

who -r displays no output

Hello. I have an AIX machine at 6100-00. We had some strange activity since filling up /tmp. One symptom is that who -r displays no output. It doesn't hang just no output is displayed. We are going to boot the machine, but prior to that I'd like to dig a bit to see what may be causing the... (0 Replies)
Discussion started by: maficdan
0 Replies

9. Shell Programming and Scripting

script for df output from multiple hosts

I am trying get "df -k" output from multiple hosts along with their hostnames via ssh, my script is appending the "df -k" output from all the nodes to a single file but not getting the hostnames for those nodes, just wondering how to pass more than one command via ssh or may be someone could come... (6 Replies)
Discussion started by: barkath
6 Replies

10. Solaris

multiple displays of characters with one push of the key.

Hi, I have a Ultra5 440MHz system running Solaris 2.6 (Rev 5.6) and have a problem with the keyboard. When I push a key it prints characters very quickly. If I push a key very fast I get maybe 3 characters. So, I am thinking bad keyboard. I borrow a known good keyboard, samething and the... (3 Replies)
Discussion started by: mndavies
3 Replies
Login or Register to Ask a Question