#!/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
expect
?ssh <host> -O exit
, ya sabes ...Respuestas:
Cuando pones esto en un script de shell, los $ 2 serán reemplazados por el argumento número 2:
Cuando ejecutó su script, no incluyó un segundo argumento.
Sin embargo, esto no viene al caso, porque quieres, específicamente:
Debe escapar del símbolo '$' con '\'.
Esto debería funcionar:
La primera línea no era necesaria, ya que el puerto será el primer argumento que puede usar '$ 1' para obtenerlo.
fuente
esto parece una forma compleja de emitir un kill, si esperar no es obligatorio
dónde
-v port=$1
variable inicial awk con $ 1index($0,"...")
buscará la salida actual de ps para sshfuente