expect完成Linux上的重复性工作

后端开发人员常需执行重复性Linux命令,如项目部署和文件同步。expect是一个基于TCL的脚本工具,能自动与交互式程序通信。其工作流程包括启动进程、等待关键字、发送命令和退出。安装expect后,可以通过示例脚本进行自动化操作。
摘要由CSDN通过智能技术生成

后端开发中会经常使用一些重复性的命令,比如项目部署,文件同步等,每次都要执行一堆相同的命令,这些重复性的工作完全可以用脚本来代替。

expect是基于TCL的相对简单的一个免费的脚本编程工具语言,用来实现自动和交互式任务程序语言进行通信,无需人工干预。

一般expect的工作流程是:spawn启动进程 --> expect期待关键字 --> send向进程发送字符 --> 退出结束。

首先安装expect:

sudo apt install expect

举个栗子: 

#! /usr/bin/expect
set timeout -1  # 设置超时时间
set src [lindex $argv 0]  # 获取输入参数
spawn rsync -av root@171.12.212.12:$src /mnt/hgfs/e/Downloads/rsync  # 开启一个进程执行rsync语句
expect "root@171.12.212.12"   # expect匹配rsync的返回结果
send "xxxxxx\r"  # 匹配到expect就执行发送动作,相当于交互下的输入密码,\r为输入密码后回车
expect eof  # 匹配结束符
exit  # 退出

常用命令:

# 命令行参数
# $argv,参数数组,使用[lindex $argv n]获取,$argv 0为脚本名字
# $argc,参数个数
set username [lindex $argv 1]   # 获取第1个参数
set passwd [lindex 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值