Kill Skript

S

SpliceX

Grünschnabel
Servus,

ich versuche ein Kill Skript zu schreiben das folgendermaßen ablaufen soll. Kill soll per PID oder Namen (übergebene Parameter) beendbar sein. Wird weder noch angegeben, sollen alle dem aktiven Benutzer gehörende Prozesse gelöscht werden.

Habe jetzt folgendes Konstrukt gebastelt:

if [ $# -lt 1 ]
then
pkill -u $(whoami)
else

if [[ "$1" =~ ^[0-9]+$ ]]
then
kill -9 $1
else
pkill $1
fi
fi


Das Problem ist das beim Aufrufen immer kommt:

12: Syntax error: end of file unexpected (expecting "then")

Selbst mit Diversen Anleitungen sieht das Abfragenkonstrukt "Normal" aus. Vielleicht könnt ihr mir weiterhelfen.

Besten dank.
 
Als Bash-Script sieht das gut aus. Klopf also mal einen Shebang in die erste Zeile, damit der Script auch von der Bash ausgeführt wird:
Code:
#!/bin/bash

if [ $# -lt 1 ]
then
  pkill -u $(whoami)
else
  if [[ "$1" =~ ^[0-9]+$ ]]
  then
    kill -9 $1
  else
    pkill $1
  fi
fi
 
Habs mal GENAU so übernommen.

Beim ausführen über sh killn.sh PID kommt:

: not found:
killn.sh: 14: Syntax error: end of file unexpected (expecting "then")



Bei bash killn.sh PID:

killn.sh: Zeile 2: $'\r': Kommando nicht gefunden.
killn.sh: Zeile 7: Syntaxfehler im bedingen Ausdruck.
'illn.sh: Zeile 7: Syntaxfehler beim unerwarteten Wort `]]
'illn.sh: Zeile 7: ` if [[ "$1" =~ ^[0-9]+$ ]]
 
Hast Du das Skript evtl. unter Windows erzeugt? Schaut danach aus, als enthielte es Sonderzeichen, die dann die Interpretation durch bash durcheinanderbringen.
 
Ich erzeuge gerade mal ne neue Textdatei unter Ubuntu. Mit sh als Suffix.

Nachtrag: So, nun geht das Kill Skript zum Teil. das pkill killt nun alle Prozesse wo whoami der Besitzer ist. Nur wenn ich die PID eines Prozesses mit reingebe findet er diese irgendwie nicht.


Nachtrag 2: Hach wie geil :) das meiste Funktioniert. Das Skript killt nun ohne Parameter alles und mit einem Wort als Parameter den richtigen Prozess. Nur das mit der PID klappt noch nicht.
Es kommt aber immer wieder: killn.sh: 14: [[: not found

Nachtrag 3: Nach nem bissien rumprobieren glaube ich, die zweite Abfrage ist falsch. Es sollte lediglich überprüft werden ob die Parameter von $1 Numerisch sind.
 
Zuletzt bearbeitet:
Welche Version der Bash benutzt Du?
Code:
bash --version
 
Habs ein wenig verändert, läuft nun.

Danke an alle Helfenden.

Dieser Thread kann geschlossen werden.
 

Ähnliche Themen

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

[Gelöst] Suchen und ersetzen mit Hilfe mehrerer Parameter

Log Skript

Problem mit HSPA+ Modem Huawei E353 - Installation unmöglich?

skript zum löschen doppelter dateien

Zurück
Oben