2 u013731743 u013731743 于 2016.01.22 11:08 提问

linux expect脚本问题

1 #!/usr/bin/expect -f

2 spawn ssh root@192.168.1.121
3 expect "*password:"
4 send "test1234\r"
5 expect "*#"
6 send "mkdir ./ts\r"
7 send "file ts\r"
8 interact
实现登录到远端机器然后新建一个目录 查看这个目录的类型
为什么去掉第五行就不能正确执行了呢?而第六行和第七行就可以连续执行?
expect和send到底是怎么样的一个关系?
spawn mkdir ./test 这样无交互的指令是不是无法用expect编程 我试了下就执行了这句 尽管我指定了 expect “*$“ 也没有继续执行接下去的send 语句
求教!

1个回答

caozhy
caozhy   Ds   Rxr 2016.01.23 04:47
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
由crontab执行expect脚本问题引发的--crontab环境变量问题
crontab下运行expect脚本问题引发的--cron和shell环境变量问题
全自动安装Linux下expect的脚本
概述:作为linux下交互式操作自动化所必备的工具软件expect不得不知,也是运维自动化的一个极为重要的工具,以下为expect的全自动安装脚本。 安装脚本: #! /bin/bash#install tclcd /rootwget http://prdownloads.sourceforge.net/tcl/tcl8.5.10-src.tar.gz  //修改为实际路径tar zxvf
linux 下使用expect编写shell 脚本交互访问远程服务器
linux 下使用expect编写shell 脚本交互访问远程服务器 使用命令行登陆远程服务器一般需要ip地址以及登陆密码等,每次都手动输很不方便,expect可以满足自动输入密码。 首先安装expect 然后编写脚本 然后修改权限 最后运行脚本
shell脚本交互:expect学习笔记及实例详解
最近项目需求,需要写一些shell脚本交互,管道不够用时,expect可以很好的实现脚本之间交互,搜索资料,发现网上好多文章都是转载的,觉得这篇文章还不错,所以简单修改之后拿过来和大家分享一下~  1. expect是基于tcl演变而来的,所以很多语法和tcl类似,基本的语法如下所示: 1.1 首行加上/usr/bin/expect 1.2 spawn: 后面加上需要执行的shell命令,比
运维笔记23 (shell脚本,expect的简易用法)
概述: shell是我们和linux接触的通道,灵活使用使用shell就能更好的掌控linux,想学好shell首先是要理解熟记很多的命令,这就相当于英语积累的单词一样,单词记得多了,英语自然就好了,但是想要真正变成英语达人还要了解些语法,shell也是一样,命令是单词,也有他的语法,我们这次主要讨论语法部分。  expect是一个免费的编程工具语言,用来实现自动和交互式任务进行通信,而无需人
Linux下用expect实现ssh自动登录并执行脚本
Linux下用expect实现ssh自动登录并执行脚本   expect不是系统自带的,需要安装:         yum install expect 装完后才可执行以下脚本。    ssh密码认证的登陆脚本: Shell代码  #!/bin/bash      # 匹配提示符   CMD_PROMPT="\](\$|#)"  
【学习心得】linux下多客户端批量操作脚本(含expect交互)
按照惯例先报一下运行环境:实体机ubuntu 12.04.3 LTS    shell使用GNU bash,版本为4.2.25需求:ssh免验证登陆。首先说明一下,这里用发起ssh连接的客户端称为C,接受连接的服务端称为S,结合需求简单来说就是从C发起ssh连接到S通过公私钥配对验证,免去手动输入密码验证。除了需要在客户端C上使用ssh-keygen命令生成密钥对之外,还需要把生成的公钥拷贝到服务...
Linux下通过crontab及expect实现自动化处理
实现每天定时从远程linux服务器上复制文件到本地,使用crontab建立定时任务,并通过scp进行Linux之间的文件复制。
利用expect在linux shell脚本中交互(scp远程传输文件示例)
看代码: #!bin/sh expect<<EOF set timeout 200 spawn scp res.zip root@192.168.160.12:/soft expect "password:" send "123456\r" expect eof EOF send密码后面的'\r'必须要有。
expect脚本实现批量ssh互信
搭Hadoop时候需要配置多节点ssh互信,节点数量多了,手工配起来就很麻烦。网上有很多自动配置ssh互信的脚本,但基本都不能直接用。今天摸索了下,自己写了个简易版,测试还能用,在这里分享下。1、每个节点安装expect包 yum install expect -y 2、将auto_ssh.sh及ip.list 拷贝至每个节点需要建立ssh的用户下,我这里拷贝至hadoop的家目录 auto