mac 上通过shell脚本 ssh上服务器

文章讲述了如何解决使用brew安装expect时遇到的Nosuchfileordirectory错误,以及创建一个用于SSH登录的expect脚本,包括脚本内容和执行报错‘spawn:commandnotfound’的解决方法。提到了shell脚本的五种执行方式,并推荐使用相对路径执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、安装expect

brew install expect

报错:

Error: No such file or directory @ rb_sysopen

brew install rb_sysopen

安装完报错的依赖,再重新运行brew install命令安装就不再报错

二、使用shell脚本

#! /usr/bin/expect -f
 
set timeout 30
set userName root
set host 192.168.0.0
set passwd 0000000
 
spawn ssh $userName@$host
 
expect {
    "(yes/no)?" {
        send "yes\n"
        expect "password:"
        send "$passwd\n"
    }
    "password:" {
        send "$passwd\n"
    }
}


interact

添加脚本可执行权限

sudo chmod +x login.sh

执行脚本:

./login.sh

报错记录:

报错:spawn: command not found

需要把#!/usr/bin/expect -f   要写在第一行

或者和启动方式有关系

shell运行的5种方式

第一种使用绝对路径执行

第二种使用相对路径执行,如./的方式

第三种使用 sh命令来执行 格式 sh 脚本名 不需要执行权限 -x参数(显示执行过程)

第四种使用 . (空格)脚本名称的方式执行 不需要执行权限 . a.sh

第五种使用 source 脚本名称 不需要执行权限(主要用于生效配置文件)

这里推荐使用第二种方式 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值