expct脚本执行,不报错,但是运行不过去。

第一次写shell脚本

#!/usr/bin/expect
spawn ssh-keygen
expect {
        "Enter "{
        send "\r"
        exp_continue
        }
        "Enter "{ 
        send "\r"
        exp_continue
        }
        "Enter"{
        send "\r"
        }
}

这个是一个expect自动运行ssh-kegen脚本,这是我写的,运行之后,虽然不报错,但是却不执行

spawn ssh-keygen

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa):

研究了一个小时,百思不得其解。后来终于有高人指出问题所在,我的expect {}里面的 ""内容后没有空格,所以导致不运行就是说""空格{}这样再写,就会正常了。第一次写shell脚本,知道了shell连空格都很严格。

时间: 2024-11-19 19:40:03

expct脚本执行,不报错,但是运行不过去。的相关文章

MySQL执行外部sql脚本文件命令报错:unknown command '\'

由于编码不一致导致的 虽然大部分导出是没有问题的 但是数据表中存储包含一些脚本(富文本内容)会出现该问题,强制指定编码即可解决. mysql导入时指定编码: mysql -u root -p --default-character-set=utf8 或者在导出时后显式指定编码就不存在这个问题了: mysqldump -uroot -p --default-character-set=utf8 mydb > E://xxxx.sql MySQL执行外部sql脚本文件命令报错:unknown com

Windows 和 Linux 中的换行与回车的区别,Windows下编写的Shell脚本,直接放到linux/unix下执行会报错

首先: CR(Carriage Return)表示回车 LF(Line Feed)表示换行 Dos和Windows采用回车+换行(CR+LF)表示下一行而UNIX/Linux采用换行符(LF)表示下一行苹果机(MAC OS系统)则采用回车符(CR)表示下一行 Windows下编写的Shell脚本,直接放到linux/unix下执行会报错,就是因为行结束符不一样导致的. 现在好多文本工具都提供了转换功能,如我常用的,也是最强大的工具 (个人感受,不是打广告):notepad++. 原文地址:htt

同一脚本sh 脚本名 报Syntax error: "(" unexpected而./脚本名不报错,求解!!

同一脚本sh 脚本名 执行时报Syntax error: "(" unexpected:而./脚本名执行不报错,为什么呢 脚本内容如下: function usage(){ echo "usage:$0 url" exit 1 } function check_url(){ wget --spider -q -o /dev/null --tries=1 -T 5 $1 if [ $? -eq 0 ] then echo "$1 is ok" el

LR调试脚本的时候报错Error -27796:

LR调试脚本的时候报错: 1.Error -27796: Failed to connect to server "192.168.211.128:80": [10060] Connection timed out  [MsgId: MERR-27796] 2.web_url("bbs") highest severity level was "ERROR", 0 body bytes, 0 header bytes  [MsgId: MMSG-

python3 UnicodeEncodeError错误,cx_oracle模块执行sql报错:UnicodeEncodeError: 'ascii' codec can't encode characters in position

问题描述: 写了一个执行sql的模块,引用了cx_oracle,在windows机器上完美运行,移植到Centos上就会报错, UnicodeEncodeError: 'ascii' codec can't encode characters in position 检查过程: 代码编码为utf-8,print编码为utf-8,文件编码为utf-8,服务器编码为utf-8,各种正常 定位代码报错位置,开始怀疑是sql执行成功,返回值有中文报错,但是后来通过观察,是传入sql,并没有执行成功,执行

eclipse下执行wordcount报错 java.lang.ClassNotFoundException 解决办法

eclipse下执行wordcount报错 java.lang.ClassNotFoundException 17/08/29 07:52:54 INFO Configuration.deprecation: fs.default.name is deprecated. Instead, use fs.defaultFS 17/08/29 07:52:54 WARN util.NativeCodeLoader: Unable to load native-hadoop library for y

mysql执行update报错1175解决方法

mysql执行update报错 update library set status=true where 1=1 Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL Queries and

转 sqlplus执行sql报错:ORA-01756:

1.sqlplus执行sql报错:ORA-01756: quoted string not properly terminated   分类: 技术 在SQLPLUS中执行SQL文件时发生错误:ORA-01756: quoted string not properly terminated 但是SQL其实是没有问题的,找了很多原因,发现可能是由于使用TOAD导出SQL insert语句,编码集的问题导致的. 首先在.bash_profile文件中添加环境变量指定编码集: export NLS_L

cents上执行wget报错:unable to resolve host address

wget命令报错,无法解析域名"www.keepalived.rog" [[email protected] download]$ wget http://www.keepalived.org/software/keepalived-1.2.12.tar.gz --2014-05-05 11:06:14--  http://www.keepalived.org/software/keepalived-1.2.12.tar.gz Resolving www.keepalived.org.

执行setup,报错 -bash: setup: command not found

执行setup,报错. [[email protected] ~]# setup -bash: setup: command not found 出现这个问题的是因为没有安装setuptool软件 1.安装setuptool [[email protected] ~]# yum install setuptool -y 2.安装系统服务管理 [[email protected] ~]# yum install ntsysv -y 3.安装setup中的防火墙设置 [[email protecte