shell引用expect
时间: 2023-09-13 08:08:18 浏览: 42
可以使用 expect 脚本来自动化执行 shell 命令。
下面是一个示例 expect 脚本,它会启动一个 shell 进程并执行一些命令:
```expect
#!/usr/bin/expect -f
set timeout 30
spawn sh
expect "$ "
send "ls -lh\r"
expect "$ "
send "echo 'Hello world!'\r"
expect "$ "
send "exit\r"
expect eof
```
在这个脚本中,我们首先使用 `spawn` 命令启动一个 shell 进程。然后,使用 `expect` 命令等待 shell 提示符出现。一旦出现了提示符,我们使用 `send` 命令发送命令给 shell。最后,我们使用 `expect eof` 命令等待 shell 进程结束。
要在 shell 脚本中引用 expect 脚本,可以使用 `expect` 命令。例如:
```shell
#!/bin/bash
expect << EOF
spawn ssh user@host
expect "password:"
send "mypassword\r"
expect "$ "
send "ls -lh\r"
expect "$ "
send "exit\r"
expect eof
EOF
```
在这个示例中,我们使用 `expect` 命令启动一个 expect 进程,并将 expect 脚本作为输入。该脚本会启动一个 SSH 连接,并在远程主机上执行 `ls -lh` 命令。