patrick1982a
Newbie
Hallo Leute,
ich habe ein Problem mit meinem Shellskript.
Das Skript zeigt die 15 CPU-Lastigsten Prozesse auf dem System für einen bestimmten Benutzer oder alle Benutzer an.
Leider funktioniert das Abfangen des Sigint-Signals nur das erste mal.
Wenn ich das 2. mal STRG+C drücke, wird das Programm ohne Hinweis beendet. Wer weiß Rat?
Für Eure freundliche Hilfe möchte ich mich schon im Voraus bedanken.
Viele Grüße
patrick1982a
------------------------------------------------------------------------------
shellparam=$#
param1=$1
param2=$2
hilfe()
{
echo "Falscher Aufruf des Shellscripts"
echo "Aufruf: prozess.sh [-user] [benutzer]"
echo ""
}
sigint_aufruf()
{
#local ergebnis
echo "Beenden? [j/n]:"
read ergebnis
if [ $ergebnis = "j" ];
then
exit 0
else
prozessanzeige $shellparam $param1 $param2
fi
}
prozessanzeige ()
{
if [ "$shellparam" = "0" ]
then
while(sleep 1)
do
trap sigint_aufruf SIGINT
clear
echo "Die Auswahl enthält alle Benutzer."
echo ""
ps -eo user,pid,%cpu,cmd | sort +2 -r |head -16
done;
fi
if [ "$shellparam" -eq "1" -o "$shellparam" -gt 2 ];
then
hilfe
fi
if [ "$shellparam" = "2" ]
then
if [ "$param1" = "-user" ];
then
while(sleep 1)
do
trap sigint_aufruf SIGINT
clear
echo "Die Auswahl enthält den Benutzer" $param2
echo ""
ps -eo user,pid,%cpu,cmd | grep $param2 | sort +2 -r |head -16
done;
else
hilfe
fi
fi
}
prozessanzeige $shellparam $param1 $param2
ich habe ein Problem mit meinem Shellskript.
Das Skript zeigt die 15 CPU-Lastigsten Prozesse auf dem System für einen bestimmten Benutzer oder alle Benutzer an.
Leider funktioniert das Abfangen des Sigint-Signals nur das erste mal.
Wenn ich das 2. mal STRG+C drücke, wird das Programm ohne Hinweis beendet. Wer weiß Rat?
Für Eure freundliche Hilfe möchte ich mich schon im Voraus bedanken.
Viele Grüße
patrick1982a
------------------------------------------------------------------------------
shellparam=$#
param1=$1
param2=$2
hilfe()
{
echo "Falscher Aufruf des Shellscripts"
echo "Aufruf: prozess.sh [-user] [benutzer]"
echo ""
}
sigint_aufruf()
{
#local ergebnis
echo "Beenden? [j/n]:"
read ergebnis
if [ $ergebnis = "j" ];
then
exit 0
else
prozessanzeige $shellparam $param1 $param2
fi
}
prozessanzeige ()
{
if [ "$shellparam" = "0" ]
then
while(sleep 1)
do
trap sigint_aufruf SIGINT
clear
echo "Die Auswahl enthält alle Benutzer."
echo ""
ps -eo user,pid,%cpu,cmd | sort +2 -r |head -16
done;
fi
if [ "$shellparam" -eq "1" -o "$shellparam" -gt 2 ];
then
hilfe
fi
if [ "$shellparam" = "2" ]
then
if [ "$param1" = "-user" ];
then
while(sleep 1)
do
trap sigint_aufruf SIGINT
clear
echo "Die Auswahl enthält den Benutzer" $param2
echo ""
ps -eo user,pid,%cpu,cmd | grep $param2 | sort +2 -r |head -16
done;
else
hilfe
fi
fi
}
prozessanzeige $shellparam $param1 $param2