Uma alternativa é usar o pkill em uma linha, seja na linha de comando ou em um script.
pkill -9 -u $USER '(HAL9000|HALos|HALshell|HALkeyboardDrv||HALdisplayDrive|HALdiskDriver)'
#! /usr/bin/tcsh -f
set ps_output = "'ps -u $user'"
@ i = 2
echo "$ps_output"
set ps_test
while ( $i <= $#ps_output )
set line = ( $ps_output[$i] )
if ( $line[4] != "ps" && $line[4] != "tcsh" && $line[4] != "zap" ) then
set ps_test = ( $ps_test $i )
endif
@ i ++
end
foreach i ( $ps_test )
set line = ( $ps_output[$i] )
set process_no = $line[1]
if ( $line[4] == "HAL9000" || $line[4] == "HALos" || $line[4] == "HALshell" || $line[4] == "HALkeyboardDriv" || $line[4] == "HALdisplayDrive" || $line[4] == "HALdiskDriver" ) then
kill -9 $process_no
endif
end
exit 0
Então, continuo recebendo o erro "set no match" no meu script, mas não consegui encontrar qual conjunto é responsável por isso, quero dizer, mesmo quando comentei
set ps_test
, eu ainda recebo uma correspondência não definida, existe uma maneira de corrigir isso
Uma alternativa é usar o pkill em uma linha, seja na linha de comando ou em um script.
pkill -9 -u $USER '(HAL9000|HALos|HALshell|HALkeyboardDrv||HALdisplayDrive|HALdiskDriver)'
Tags ps tcsh shell-script