Prozesse auf Shellebene

A

anda00

Grünschnabel
hallo ich habe hier 2 kleine scripte
Script1:

#!/bin/bash
trap date SIGUSR1
trap "kill -9 $$"

zahl=0
while [ $zahl -lt 200 ]; do
echo "$zahl"

zahl=`expr $zahl + 1`
sleep 1

done


Script 2:

#!/bin/bash


read var
while [ "$var" != "20" ]; do
echo "$0 $var"
read var
done


dabei sollen die scrippte diese funktion erfüllen:

Einlesen von Stdin in einer Schleife bis der String "20" auftaucht
mit Ausgabe des Scriptnamens und des gelesenen Strings
Kombination der Scripte zur Kommunikation über eine Pipe
script1 | script2

so ok soweit so gut ... nun möchte ich allerdings die scripte folgendermaßen erweitern

script1 so erweitern, dass mit SIGUSR2 ein File erzeugt wird,
in dem in Zeile 1 die PID des Scripts und
in Zeile 2 die Zeit im Format <YYYY-MM-DD hh:mm> steht
und dann das script sich selbst terminiert

script2 so erweitern, dass die von script1 eingelesenen Daten
jeweils um die Zeit des Einlesens erweitert werden
(Format <YYYY-MM-DD hh:mm> - <eingeleseneZahl>)
und die Daten in einem File out
und gleichzeitig auf der Konsole erscheinen

weiss jemand rat ?
 
Ich geb mal nen Tipp zum ersten Skript:

Code:
trap 'printf "$$\n$(date)\n">file; exit 1' SIGUSR2

Zur Formatierung von date sowie zum Rechnen damit (auch date kann rechnen) schaust Du Dir am besten "man/info date" an.

Gruss, Xanti

edit: Noch ein paar Tipps zur Berechnung der verstrichenen Zeit:

Code:
# Speichere aktuelle Zeit in dem von Dir geforderten Format in der Variable date1
date1=$(date "+%Y-%m-%d %H:%M")

# Berechne die verstrichene Zeit zwischen date1 und jetzt in Sekunden
echo $(($(date +%s)-$(date +%s -d "$date1")))
 
Zuletzt bearbeitet:

Ähnliche Themen

Switche abfragen über Script

Skript soll nicht doppelt laufen... kill pkill pid cron

script sshpass

Verschlüsseltes Backup-Script mit rsync

Grafische Anzeige der Temperatur

Zurück
Oben