Red de conocimiento informático - Material del sitio web - Cómo utilizar expect para escribir secuencias de comandos de inicio de sesión automático

Cómo utilizar expect para escribir secuencias de comandos de inicio de sesión automático

1. ¿Instalar lo esperado?

Primero debes instalar tcl: apt-get install tcl

apt-get install expect

2.use ofpect

2.1 Entrada Operación simple de contraseña

#! /usr/bin/expect

establecer tiempo de espera 100

establecer contraseña "123456"

spawn sudo rm -rf zzlogic

esperar " root123456"

enviar "$ contraseña\n"

interactuar

Instrucciones:

Primera línea #! /usr/bin/expect representa el modo interactivo del shell usando inspect

set es el valor asignado a la variable contraseña

set timeout 100: establece el tiempo de espera en 100 segundos, si lo deseas para ejecutar Si el comando de shell es más largo, el tiempo de espera se puede establecer más largo. inspeccionar excede el tiempo de espera El tiempo de espera es de 10 segundos

spawn ejecuta el script de shell bajo expect

esperar determina si el retorno del script de shell ejecutado por spawn contiene el "" en el campo

enviar: si inspeccionar monitorea la cadena contenida, se ingresará el contenido en envío, \n es equivalente al retorno de carro

interactuar: salga de inspeccionar y regrese a la terminal. de lo contrario, siempre estará en inspeccionar. No se puede salir al terminal

2.2 parámetros de línea de comando de inspeccionar

[lindex $argv n] Obtiene el índice de n parámetros (el índice) comienza a contar desde 0)

$argc es el número de parámetros de la línea de comando

[lrange $argv 0 0] representa el primer parámetro

[lrange $argv 0 3] representa del primero al tercer parámetro

Por ejemplo, el archivo scp_service.sh puede ser. /scp_service.sh -rm para ejecutar, este es el parámetro especificado

establecer opción?[lindex $argv 0] (obtiene el primer parámetro almacenado en la opción variable, el índice del parámetro comienza desde 0 calculado )

2.3if....elif... .else...

esperar admite declaraciones if,

if {condición 1} {

condición 2} {

condición 3{

Condición 1 ejecutar sentencia

} elif {condición 2} {

Condición 2 ejecutar sentencia

} else {

De lo contrario ejecutar sentencia

}

Descripción:

< La condición de p>1.if usa {} para contener la condición

2. if y el siguiente {} deben estar separados por espacios

3.

Las dos llaves deben estar separadas por espacios, como si {}{}; de lo contrario, se informará un error: hay caracteres adicionales después de cerrar la llave

3. Utilice { para conectarse a la siguiente línea. , por lo que la condición de if Debe haber una llave de apertura después de {

4.else no se puede colocar en una línea separada, por lo que else debe ir seguida de}

2.4 expect {} , expectativas de varias líneas, la línea que coincida con Qué línea ejecutar

Antecedentes: a veces, el resultado esperado de la ejecución del shell es variable, puede ser que solicite sí/no, o puede ser que se ingrese una contraseña. entonces puedes usar expect {}

Las llaves se usan para colocar declaraciones de varias líneas, que coinciden de arriba a abajo. Se ejecuta la oración que coincida.

3. Llame a inspect en el shell para iniciar sesión

Ejecuté el script de inspección en el script de shell. Por supuesto, puede pasar algunas variables definidas en el shell como entrada de parámetros al script de inspección.