#!/usr/bin/expect -f
set port [lindex $argv 0]
spawn ps xu | grep "ssh -f -N -o ConnectTimeout=5 -D $port" | grep -v grep | awk '{ print $2 }' | xargs kill -9
expect eol
Me aseguro de que el 100% del puerto 1234 se esté ejecutando. Porque lo compruebo ps aux | grep ssh. y ver. Entonces, ¿qué hay de malo en mi código? Gracias
No sé, soy novato. ¿Me pueden ayudar a arreglar mi código?
—
Edward Trọng
Cuando ejecute el script, intentará sustituir el argumento # 2 en $ 2. Sin embargo, solo proporcionó 1 argumento. No soy muy competente con los comandos de shell, pero supongo que deberías escapar de $ en el script de esta manera: awk '{print \ $ 2}'
—
Seyren
Intente simplemente tener esto en su archivo .sh: spawn ps xu | grep "ssh -f -N -o ConnectTimeout = 5 -D $ 1" | grep -v grep | awk '{print \ $ 2}' | xargs kill -9
—
Seyren
Podrías usar
—
Grawity
ssh <host> -O exit
, ya sabes ...
expect
?