![]() |
Hallo en welkom van de Verenigde Staten aan de UNIX en Linux Forum! Bedankt voor uw bezoek en Deelnemen aan onze wereldwijde gemeenschap.
|
|
google unix.com
|
|||||||
| Forums | Registreer | Forum Regels | Links | Albums | Veelgestelde vragen | Ledenlijst | Kalender | Zoeken | Today's Posts | Markeer forums als gelezen |
| Programmeren en Shell Scripting Post vragen over KSH, CSH, SH, Bash, Perl, PHP, sed, awk en andere shell scripts en shell scripting talen hier. |
Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
|
||||
| Draad | Thread Starter | Forum | Antwoorden | Last Post |
| Splitsing bestand gebaseerd op het aantal rijen | wahi80 | Programmeren en Shell Scripting | 2 | 06-03-2008 10:38 PM |
| Kopieer lijnen via een log-bestand op basis van tijdstempel | ranjiadmin | UNIX for Advanced & Expert Gebruikers | 1 | 05-22-2008 04:16 |
| het zoeken en opslaan onbekend aantal lijnen gebaseerd op de string met een voorwaarde | swamymns | Programmeren en Shell Scripting | 7 | 05-13-2008 02:02 |
| Grabbing lijnen van een bestand op basis van een datum | bsp18974 | Programmeren en Shell Scripting | 2 | 07-17-2006 09:58 |
| zaak, die wordt gebaseerd op de beschikbaarheid bestand | Loriel | Programmeren en Shell Scripting | 6 | 06-01-2004 09:24 |
![]() |
|
|
LinkBack | Thread Tools | Zoeken in deze Thread | Rate Thread | Display Modes |
|
|
|
||||
|
Ik moet een if-statement in een script te draaien als er bepaalde processen draaien. Eenvoudigste manier kan ik zien om dit te doen is om een ps voeren en de resultaten op basis van wat ik ben op zoek naar grep:
$ Ps-ef | grep wtrs --- webtrend 5046 1 0 12 mei? 0:28 / webtrends/versions/6.1/wtrs_ui-start --- webtrend 5030 1 0 12 mei? 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 ("--" Toegevoegd als lijn seperators) Normaal gesproken zou ik verwachten dat de eerste, tweede en vierde regel. Dat betekent dat alles normaal draait. De derde en de vijfde lijnen in dat voorbeeld aanwezig zijn omdat het programma (wtrs) momenteel bepaalde opdrachten uitvoeren. Dus, wat ik wil doen is een if-statement dat zegt (in het Engels): Als wtrs aanwezig is in het bovenstaande voorbeeld 3 of minder keer, voer de volgende commando's, anders iets anders doen. Dus wat ik dacht te doen is voor het eerst het verzenden van de uitvoer van het ps commando in een tekstbestand: $ Ps-ef | grep wtrs> test.txt Dan is de if-statement zou kunnen zeggen: Als test.txt <4 regels lang, uit te voeren. Iedereen weet hoe zoiets mogelijk zou zijn, of als het zelfs mogelijk zou zijn? |
|
|||||
|
Gebruik wc-l te tellen de lijnen van de output
dat wil zeggen 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 ZB http://www.zazzybob.com |
|
||||
|
Citaat:
|
|
|||||
|
Probeer vervanging
if [$ (ps-ef | grep wtrs | wc-l)-gt "3"]; dan met if [ `ps-ef | grep wtrs | wc-l`-gt "3"]; dan Je gebruikt de originele Bourne shell, dus probeer aanhalingstekens plaats. Of overweeg het gebruik #! / Bin / ksh als het geïnstalleerd en de oorspronkelijke syntax hierboven. Vrede ZB http://www.zazzybob.com |
![]() |
| Bladwijzers |
| Thread Tools | Zoeken in deze Thread |
| Display Modes | Beoordeel deze draad |
|
|