2016-07-11 11 views
1

Ich habe folgend in meinem Bash_profile gefunden:Bash-Skript für Automation - Befehl nicht

k9() { for A in $(ps -A | grep $* | sed 's/^\([A-Za-z0-9]*\).*/\1/' ;) ; do "kill -9 $A"; done } 

Das Skript sollte die var in der Befehlszeile inputed grep S * die PIDs diejenigen bekommen und einen Kill ausführen - 9 auf jedem von ihnen. Aber stattdessen bekomme ich das:

Machine:~ mach$ k1 Chromium 
-bash: kill -9 81922: command not found 
-bash: kill -9 82009: command not found 
-bash: kill -9 82423: command not found 
-bash: kill -9 82424: command not found 
-bash: kill -9 82560: command not found 
-bash: kill -9 82561: command not found 
-bash: kill -9 82563: command not found 
-bash: kill -9 82608: command not found 
-bash: kill -9 85243: command not found 
-bash: kill -9 85248: command not found 
-bash: kill -9 85321: command not found 

Vielen Dank im Voraus!

+0

Sie können das Skript in mehrere Zeilen aufteilen, um es lesbarer zu machen. – lwassink

Antwort

2

Sie müssen nicht den gesamten Befehl angeben.

k9() { 
    for A in $(ps -A | grep $* | sed 's/^\([A-Za-z0-9]*\).*/\1/' ;) ; do 
    kill -9 "$A" 
    done 
} 
+0

Arbeitete wie ein Charme. Danke Chepner! –