php shell expect,shell expect简单实用

shell expect简单实用

1、脚本实例

#!/usr/bin/expect -f

set user xxx

set privateKey /home/.ssh/id_rsa

set host 127.0.0.1

set port 8080

set upFilePath [index $argv 0] # 表示传入的第一个参数

set lupFilePath [index $argv 1] # 表示传入的第二个参数

set upFileName [index $argv 2] # 表示传入的第三个参数

spawn sftp -oIdentityFile=${privateKey} -oport=${port} ${user}@${host}

expect "sftp"

send "cd ${upFilePath }\r"

expect "sftp"

send "lcd ${lupFilePath }\r"

expect "sftp"

send "put ${upFileName }\n"

expect "sftp"

send "ls -l"

expect "sftp"

send "bye\r"

expect eof

借助 expect 处理交互的命令,可以将交互过程如 ssh 登录, ftp 登录等写在一个脚本上,使之自动化完成。

2、expect语法

expect [选项] [ -c cmds ] [[ -[f|b] ] cmdfile] [args]

选项:

-c: 从命令行执行expect脚本,默认expect是交互执行的

示例:expect -c 'expect "\n" {send "pressed enter\n"}'

-d: 输出调试信息

示例:expect -d demo.exp

expect中的相关命令

spawn:启动新的进程

send:向进程发送字符串

expect:从进程接收字符串

interact:允许用户交互

exp_continue:匹配多个字符串时在执行动作后加次命令

shell expect简单实用 相关文章

简单搭建自己所需要的docker环境

简单利用 docker搭建自己所需开发环境 docker的基本理论 参考:https://www.runoob.com/docker/docker-tutorial.html 重点需要弄清楚 镜像 和 容器 准备条件 首先需要安装 docker-ce nvidia-docker (可选,如果容器需要调用系统的gpu则必须要安装) 安装 nvid

通过例子分析MVVM

通过一个简单的计数器例子分析MVVM。 代码 demo2.html !DOCTYPE htmlhtml lang="en"head meta charset="UTF-8" titleTitle/title/headbodydiv id="app" h3当前数值大小:{{cnt}}/h3 button @click="addCnt" +/button button @click="subCnt" -/button/div/bo

Day2:Shell 基础

一、管道 | tee管道 1、管道 | 管道,从一头进去,从另一头出来。 在shell中,管道将一个程序的标准输出作为另外一个程序的标准输入,就像用一根管子将另外一个程序的输出连接到另外一个程序的输入一样。 管道的符号是|,下面的程序将man的输出作为less的标

Golang的memcache如何简单实现

下面由 golang 教程栏目给大家介绍Golang简单的memcache实现方法,希望对需要的朋友有所帮助! 这两天在做项目的过程中遇到了一个访问全局变量的问题场景:编写一个方法,获取id对应的token值,token需要缓存起来(全局变量内存缓存),如果获取不到或者token

使用IDEA搭建一个简单的SpringBoot项目——详细过程(转)

一、创建项目 1.File-new-project; 2.选择“Spring Initializr”,点击next;(jdk1.8默认即可) 3.完善项目信息,组名可不做修改,项目名可做修改;最终建的项目名为:test,src-main-java下包名会是:com-example-test;点击next; 4.Web下勾选Spring Web

Qt简单的文件创建和读写

1 QFile fp; //要包含必要的头文件,这里省略 2 QDir(dir); 3 QString path("./"),filename("test.txt"); 4 QDebug qdebug(QtWarningMsg) ; 5 fp.setFileName(path+filename); //为fp指定包含路径的文件名 6 if(fp.exists()) //若存在,读取 7 { 8 QString(t

2/9 MongoDB +Mongoose + Express 写一个简单接口的坑

写在前面 我今天可是吐了 这个 NoSQL 可是把我给直接送走 MongonDB 多好的 只是和ta一起的工具让我炸裂 首先是studio 3t网站我都访问不了,下个p 只能在一些恶毒捆绑下载的地方下载,( 安装的时候,记得把系统时间调到2077 :) 我当时应该后调几百年的 接着

jwt简介与简单使用

JSON WEB Token简称jwt,是一种基于JSON的、声明某种主张的令牌(token)。JWT通常由三部分组成: 头信息(header), 载荷(payload)和签名(signature),使用Base64 URL算法将上述JSON对象转换为字符串保存。Base64是一种编码,是可逆的,所以,在JWT中,

手机端rem简单配置相关

手机端rem简单配置相关 1 !DOCTYPE html 2 html xmlns="http://www.w3.org/1999/xhtml" 3 head runat="server" 4 meta http-equiv="Content-Type" content="text/html; charset=utf-8" / 5 meta name="viewport" content="width=device-width, initial-scale

Shell基础与编程

Shell基础 1. Shell概述 Shell是什么 Shell是一个命令行解释器,它为用户提供 了一个向Linux内核发送请求以便运行程 序的界面系统级程序,用户可以用Shell来 启动、挂起、停止甚至是编写一些程序。 Shell还是一个功能相当强大的编程语言, 易编写,易调试,

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值