SSH远程连接执行多行代码并获取返回码:expect与bash脚本双方法揭秘
在SSH远程连接中执行多行代码并获取返回码,你可以使用`expect`或`bash`的命令行选项来实现。这里提供两种方法: 1. 使用`expect`: `expect`是一个用于自动化交互式程序的工具,特别适合处理需要输入用户名、密码等场景。以下是一个简单的例子: ```bash #!/usr/bin/expect set timeout -1 ;# 设置超时时间无限长 spawn ssh user@host "command1; command2; command3" expect "$" ;# 等待命令提示符 set result $expect_out(buffer) ;# 保存输出结果 expect "$?" ;# 获取最后一条命令的返回码 puts "Return code: $expect_status" ``` 这里,`command1; command2; command3`是你要执行的多行代码。 2. 使用bash脚本: 如果你不想使用`expect`,也可以直接在bash脚本中执行多行命令,并通过` $?`获取最后一条命令的返回码。例如: ```bash #!/bin/bash ssh user@host << EOF command1 command2 command3 echo $? EOF ``` 这里,`<< EOF`开始一个多行字符串,直到`EOF`结束。最后一行的`echo $?`会打印出最后一条命令的返回码。 请确保替换`user@host`和`command1; command2; command3`为你的实际值。 ######[AI写代码神器 | 338点数解答 | 2024-05-23 10:09:13]
- Java 实现计算机硬件模拟:从 PCI 设备到主板、计算机的启动与关闭(字节豆包 | 716点数解答 | 2024-12-08 23:38:38)346
- Java 代码:模拟计算机主板启动与关闭 PCI 设备全流程(字节豆包 | 637点数解答 | 2024-12-09 08:31:54)312
- 代码排版:优化mitmproxy相关命令行代码格式(字节豆包 | 102点数解答 | 2024-11-07 11:31:23)282
- Bash脚本:系统临时文件清理攻略及注意事项(百度文心 | 381点数解答 | 2024-11-10 13:32:25)208
- Java 实战:Vehicle 类与 User 类实现机动车速度功率控制( | 968点数解答 | 2024-03-12 11:26:25)561
- 50 分判断题大揭秘:变量、条件、循环与数组知识正误辨析(字节豆包 | 229点数解答 | 2025-12-21 19:15:16)79
- Java技巧:用 indexOf 方法获取字符串中某子字符串所有出现位置( | 691点数解答 | 2023-12-28 19:49:03)331
- Java 实战:动物类、接口与继承实现鸟儿吃虫和飞翔功能(字节豆包 | 183点数解答 | 2024-09-19 15:53:55)307
- Java 实战:动物类、接口与继承,实现鸟儿吃虫与飞翔功能(字节豆包 | 184点数解答 | 2024-09-19 16:45:48)326
- Java 实现 BankAccount 类:账户余额管理与测试全解析(字节豆包 | 420点数解答 | 2024-10-11 08:48:21)326
- Java 编程:实现教师与学生类的创建、继承及属性操作(字节豆包 | 745点数解答 | 2024-10-16 18:40:42)414
- Java 实现 Circle 类:全面封装圆的属性与方法(字节豆包 | 256点数解答 | 2024-10-27 16:34:37)256