Entre los muchos comandos en Linux, el comando expect es relativamente poco común. Podemos usar el comando expect para implementar el inicio de sesión automático del script, a la espera de comentarios del proceso, etc. Entonces, ¿cuáles son los usos del comando expect? Ven con Xiaobian.
primer vistazo a un fragmento de código:
#! /usr /bin /expect
establece tiempo de espera 30
spawn ssh -l root 192.168.1.188
espera " contraseña: "
enviar " abc123456 \\ r "
interactuar
Explique estas 6 líneas:
Línea 1 [#! /usr /bin /expect]
Esta línea le dice al código en el script del sistema operativo que use ese shell para ejecutar. La expectativa aquí es en realidad una especie de bash en Linux y cmd en Windows. Esta línea debe estar en la primera línea del script.
Línea 2 [set timeout 30]
Básicamente, saber inglés sabe que está configurando el timeout. Ahora solo debe recordar que su unidad de tiempo es: segundos
Línea 3 [spawn ssh -l username 192.168.1.188]
spawn es el comando interno que se puede ejecutar después de ingresar al entorno de espera. Si no hay una ejecución esperada o directa bajo el SHELL predeterminado, no se encuentra. Al comando engendrar. Por lo tanto, no utilice los comandos como " que generan " para encontrar el comando spawn. Por ejemplo, dir in windows es un comando interno. Este comando lo proporciona el shell. No puede encontrar un archivo ejecutable de dir.com o dir.exe. Su función principal es agregar un shell al proceso de ejecución de ssh para pasar comandos interactivos.
Línea 4 [expect " password: "]
El comando wait aquí también es un comando interno de expect, un poco mareado, espera los comandos de shell y los comandos internos son los mismos, pero No es una función, solo acostúmbrate a ella. El significado de este comando es juzgar si la cadena que contiene " contraseña: " está incluida en el último resultado de salida, y si lo está, devuélvala inmediatamente; de lo contrario, esperará un momento y luego regresará, donde el tiempo de espera es de 30 segundos establecido previamente
<
Línea 5 [enviar " abc123456 \\ r "]
Esta es la ejecución de la acción interactiva, equivalente a la acción de ingresar manualmente la contraseña.
Sugerencias: No olvide agregar " \\ r " al final de la cadena de comando. Si hay un estado de espera anormal, puede verificarlo.
Línea 6 [interactuar]
Una vez completada la ejecución, mantenga el estado interactivo y otorgue el control a la consola. En este momento, puede operarlo manualmente. Si no tiene esta frase, saldrá después de iniciar sesión, en lugar de permanecer en el terminal remoto.
En Linux, puede usar este comando cuando ejecuta ssh login o scp para copiar archivos, y puede ingresar la contraseña automáticamente.
Caso 1: Comando de ejecución remota
#! /usr /bin /expect -f
establece tiempo de espera 30
spawn ssh -l root 192.168.1.188
expect {
" yes /no &" {send " yes \\ r "; exp_continue}
" contraseña: " {send " abc123456 \\ r "}
}
expect -re " \\] (\\ $
El cambio del método de entrada de Linux es igual que en Windows, también puede usar el método de ac
El sistema CentOS bajo el mensaje de error de conexión del servidor puro-ftpd, es decir, falla la au
Se puede modificar el rango del puerto TCP del sistema Linux. Ajuste adecuadamente
Para crear un paquete RPM en un sistema Linux, cree un script de shell y un archivo
Cómo instalar y configurar Salt
Cómo usar el comando de sincronización en Linux
Los principiantes de Linux necesitan aprender el resumen de comandos
Sistema Linux Vim cómo instalar el complemento de YouCompleteMe
Linux cómo instalar el comando pidstat
El indicador de PyCharm de instalación de Linux no puede iniciar el error de PyCharm?
Instalación de Linux del método de archivo de cabecera del kernel apropiado
Dos formas de acelerar la velocidad de copia de archivos Linux
¿Cómo mejorar la velocidad de Google Chrome en Linux?
Linux mysql cómo cambiar la contraseña de root
Cómo resolver el problema del sistema Linux Swap agotamiento
Permita que su sitio web se abra para IIS para habilitar la "caducidad del contenido"
Ver los consejos de uso de la era del sistema WinXP
Modifique de forma inteligente la información del BIOS de la máquina virtual
Causas y soluciones para problemas de marcación de fibra en WinXP
El modo de seguridad de Win10 no puede ver cómo hacer el
Cómo Win7 elimina las ubicaciones de red de las ubicaciones de red no utilizadas
Añadir subtítulos suaves a películas MP4 en el sistema Mac
Después de cambiar el sistema XP a win7, el problema del problema del ruido es