The UNIX and Linux Forums  
Hallo und herzlich Willkommen aus den Vereinigten Staaten, die UNIX-und Linux-Foren! Vielen Dank für Ihren Besuch und die Teilnahme an unserem Global Community.

Go Back   Die UNIX-und Linux-Foren > Top Foren > Shell Programmierung und Scripting
.
Google unix.com



Shell Programmierung und Scripting Post Fragen zu ksh, csh, sh, bash, Perl, PHP, sed, awk und anderen Shell-Skripte und Shell-Scripting-Sprachen hier.

Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
Faden Thread Starter Forum Antworten Last Post
Splitting-Datei basiert auf der Anzahl der Zeilen wahi80 Shell Programmierung und Scripting 2 06-03-2008 10:38 PM
Kopieren Sie Zeilen aus einer Log-Datei auf der Grundlage von Zeitstempel ranjiadmin UNIX für Fortgeschrittene und Experten 1 05-22-2008 04:16 AM
Suchen und Speichern von unbekannten Anzahl der Zeilen auf der Grundlage der String mit einem Zustand swamymns Shell Programmierung und Scripting 7 05-13-2008 02:02 AM
Grabbing Zeilen aus einer Datei auf ein Datum bsp18974 Shell Programmierung und Scripting 2 07-17-2006 09:58 AM
CASE-Anweisung auf Datei Verfügbarkeit Loriel Shell Programmierung und Scripting 6 06-01-2004 09:24 AM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Suche diesen Thread Rate Thread Anzeige-Modi
  #1 (permalink)  
Old 05-14-2004
LordJezo
Gast
  
 

Beiträge: n / a
Bits: 0 [Banking]
Question Wie kann ich eine if-Anweisung um die Ausführung auf der Grundlage der Anzahl der Zeilen in einer Datei?

Ich muss eine if-Anweisung in einem Skript, wenn es bestimmte Prozesse laufen. Einfachste Art und Weise kann ich sehen, dies zu tun ist, um eine ps und grep die Ergebnisse auf, was ich suche nach:

$ Ps-ef | grep wtrs
---
webtrend 5046 1 0 12. Mai? 0.28 / webtrends/versions/6.1/wtrs_ui-Start
---
webtrend 5030 1 0 12. Mai? 3.29 / webtrends/versions/6.1/wtrs-Start
---
webtrend 3550 5030 25 07:03:40? 91:09 / webtrends/versions/6.1/wtrs 314-Kind
---
webtrend 6473 3999 0 09:10:08 pts / 4 0:00 grep wtrs
---
webtrend 4409 5030 11 07:35:54? 60:29 / webtrends/versions/6.1/wtrs 315-Kind


("--" Hinzugefügt Linie als Separatoren)


Normalerweise würde ich erwarten, dass die erste, zweite und vierte Zeile. Das heißt, alles läuft normal. Die dritte und die fünfte Zeile in diesem Beispiel sind, da das Programm (wtrs) ist derzeit die Ausführung bestimmter Befehle.

Also, was ich tun wollen ist eine if-Anweisung, die besagt, dass (in Englisch):

Wenn wtrs ist in dem obigen Beispiel 3 oder weniger Zeit, führen Sie die folgenden Befehle ein, sonst etwas anderes.

Also, was ich denke dabei zum ersten Mal die Ausgabe von ps in eine Text-Datei:

$ Ps-ef | grep wtrs> test.txt

Dann wird die if-Anweisung könnte sagen:

Wenn test.txt <4 Zeilen lang, führen.

Wer weiß, wie so etwas möglich wäre, oder wenn es auch möglich sein?
  #2 (permalink)  
Old 05-14-2004
zazzybob's Avatar
zazzybob zazzybob is offline Forum Advisor  
Registriert Geek
  
 

Join Date: Dezember 2003
Ort: Melbourne, Australien
Beiträge: 2.100
Verwenden Sie wc-l, um die Zeilen der Ausgabe

dh
Code:
if [ $( ps -ef | grep wtrs | wc -l ) -gt "3" ];
then
   # do stuff for more than 3 lines
else
   # do stuff for three or less lines
fi
Frieden,
ZB
http://www.zazzybob.com
  #3 (permalink)  
Old 05-14-2004
LordJezo
Gast
  
 

Beiträge: n / a
Bits: 0 [Banking]
Zitat:
Zitat von zazzybob
Verwenden Sie wc-l, um die Zeilen der Ausgabe

dh
Code:
if [ $( ps -ef | grep wtrs | wc -l ) -gt "3" ];
then
   # do stuff for more than 3 lines
else
   # do stuff for three or less lines
fi
Was ist der-GT "3" etwas bedeuten?
  #4 (permalink)  
Old 05-14-2004
zazzybob's Avatar
zazzybob zazzybob is offline Forum Advisor  
Registriert Geek
  
 

Join Date: Dezember 2003
Ort: Melbourne, Australien
Beiträge: 2.100
-gt "3" bedeutet, mehr als 3
  #5 (permalink)  
Old 05-14-2004
LordJezo
Gast
  
 

Beiträge: n / a
Bits: 0 [Banking]
Script sieht wie folgt aus:

#! / bin / sh
if [$ (ps-ef | grep wtrs | wc-l)-gt "3"];
dann
echo seiner laufenden Dinge
sonst
echo kann es heruntergefahren
fi


Fehler wird es, wenn es:

Syntax-Fehler in Zeile 2: "(" unerwartete

  #6 (permalink)  
Old 05-14-2004
zazzybob's Avatar
zazzybob zazzybob is offline Forum Advisor  
Registriert Geek
  
 

Join Date: Dezember 2003
Ort: Melbourne, Australien
Beiträge: 2.100
Versuchen Sie, anstelle der
if [$ (ps-ef | grep wtrs | wc-l)-gt "3"]; dann

mit
if [ `ps-ef | grep wtrs | wc-l"-gt "3"]; dann

Sie sind mit der Original-Bourne-Shell, so versuchen backquotes statt.

Oder die Verwendung von #! / Bin / ksh, wenn es installiert ist und der ursprüngliche Syntax oben.

Frieden
ZB
http://www.zazzybob.com
  #7 (permalink)  
Old 05-14-2004
LordJezo
Gast
  
 

Beiträge: n / a
Bits: 0 [Banking]
Thumbs up

Ah ha!

Das war es. Silly me .. nur mit einer anderen Shell.

Dank viel.
Closed Thread

Lesezeichen

Thread Tools Suche diesen Thread
Suche diesen Thread:

Erweiterte Suche
Anzeige-Modi Rate this thread
Rate this thread:

Forumregeln
Du möglicherweise nicht neue Themen
Du möglicherweise nicht nach Antworten
Du möglicherweise nicht post-Anlagen
Du möglicherweise nicht bearbeiten Sie Ihre Beiträge

BB-Code ist Auf
Smilies sind Auf
[IMG] Code Auf
HTML-Code ist Aus
Trackbacks sind Auf
Pingbacks sind Auf
Refbacks sind Auf




Alle Zeiten sind GMT -4. Es ist jetzt 01:34 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Ltd. Sprachliche Übersetzungen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Die UNIX-und Linux-Foren Content © Copyright 1993-2009. Alle Rechte Reserved.Ad Management von RedTyger

Content Relevant URLs durch vBSEO 3.2.0