linuxexpect命令不能用

linuxexpect命令不能用,第1张

linuxexpect命令不能用于Linux系统,它是一个Perl模块,用于编写自动化脚本。它可以用于启动和控制其他应用程序,比如telnet、ftp、ssh等,以及解析输出并执行相应的命令。

/asm -logfile $logfile_basename"_cpu3212log" 这个命令打出后是提示的input->的话,

你的监视的字符应该是 expect "input->" 或者 "input"

bash调用expect的时候直接/expectTest $logfile_basename 你试一下 没有 -

给你改半天问题太多了 告诉我你要做个什么样的功能 我给重写遍吧改比重写都费劲

如果你非要自己写 就把函数传值和返回值那地方在看看

#include <stdioh>

int len(int n);

void row_transformation_1(int n,int p[],int i,int j,int l);

void row_transformation_2(int n,int p[],int i,int j);

void row_transformation_3(int n,int p[],int i,int l);

int det(int n,int p[]);

int main()

{

int n;

int i,j;

int a[100],b[100];

int p;

scanf("%d",&n);

p=a;

for(i=0;i<n;i++)

{

for(j=0;j<n;j++)

{scanf("%d",&a[i][j]);}

for(;j<2n;j++)

{

if(i==(j-n)) a[i][j]=1;

else a[i][j]=0;

}

}

for(i=0;i<n;i++)

{

for(j=0;j<n;j++)

b[i][j]=a[i][j];

}

if(det(n,b)==0) printf("The inverse matrix does not exist\n");

else

{ for(j=0;j<n-1;j++)

{

if(a[j][j]==0)

{ for(i=j;i<n;i++)

{if(a[i][j]!=0) {void row_transformation_2(n,a,j,i); break; }}

}

else

{for(i=j+1;i<n;i++) row_transformation_1(n,a,j,i,a[j][j]/a[i][j]);}

}//变成上三角矩阵

for(i=n-1;i>=0;i--)

{

for(j=i+1;j<n;j++)

{

row_transformation_1(n,a,i,j,1/a[j][j]);

}

row_transformation_3(n,a,i,1/a[i][i]);

}//变成单位矩阵

for(i=0;i<n;i++)

{

for(j=n;j<2n;j++)

{printf("%d\t",a[i][j]);}

putchar('\n');

}//输出

}

return 0;

}

void row_transformation_1(int n,int p[],int i,int j,int l)

{

int k;

for(k=0;k<n;k++)

{ ((p+i)+k)-=(((p+j)+k))l; }

}

void row_transformation_2(int n,int p[],int i,int j)

{

int t,k;

for(k=0;k<n;k++)

{ t=((p+i)+k);

((p+i)+k)=((p+j)+k);

((p+j)+k)=t;

}

}

void row_transformation_3(int n,int p[],int i,int l)

{ int k;

for(k=0;k<n;k++)

{ ((p+i)+k)/=l; }

}

int len(int n)

{return n;}

int det(int n,int p[])

{

int i,j,k,m,sum=0;

if(n>1)

{ for(k=0;k<n;k++)

{

int a;

a=(int)malloc(100);

for(j=0;j<n-1;j++)

{

for(i=0;i<n-1;i++)

{

if(j>=k) m=1; else m=0;

a[i][j]=((p+i+1)+j+m);

}

}

sum+=((p+k))(pow(-1,k+2))(det(n-1,a));

}

}

else return p;

return sum;

}

给你改完能编译通过了 没看明白你要的什么功能所以也不知道好不好使

参考这样的。正则去掉也可以

expect "(yes/no)" {

send "yes\r"

expect "password:"

send "$password\r"

} "password:" {send "$password\r"}

推荐Windows下解释执行的脚本语言:简单网络管理语言(Simple Network Management Language)是一种类自然语言的脚本语言,它采用snmp、telnet、ping、dns、arp、ssh、tcp、udp、web等协议访问网络设备,内置smtp协议用于告警等邮件的发送,支持excel、mysql、sqlite等3种方式进行网管数据的存取。

最新版本: snml813(ladybird20200205) utf8&ipv6

手册最新版:>

脚本如下:\x0d\\x0d\#!/usr/bin/expect -f\x0d\\x0d\set password 密码\x0d\\x0d\spawn scp 用户名@目标机器ip:拷贝文件的路径 存放本地文件的路径 \x0d\set timeout 300 \x0d\expect "用户名@目标机器ip's password:" #注意:这里的“用户名@目标机器ip” 跟上面的一致\x0d\set timeout 300 \x0d\send "$password\r"\x0d\set timeout 300 \x0d\send "exit\r"\x0d\\x0d\expect eof\x0d\\x0d\附:scp参数\x0d\-r:拷贝目录\x0d\-c:允许压缩\x0d\\x0d\一个完整的例子\x0d\\x0d\#!/usr/bin/expect -f\x0d\set password 123456\x0d\#download\x0d\spawn scp root@1921681218:/root/awmv /home/yangyz/\x0d\set timeout 300 \x0d\expect "root@1921681218's password:"\x0d\set timeout 300 \x0d\send "$password\r"\x0d\set timeout 300 \x0d\send "exit\r"\x0d\expect eof \x0d\\x0d\#upload\x0d\spawn scp /home/yangyz/abcsql root@1921681218:/root/testsql \x0d\set timeout 300 \x0d\expect "root@1921681218's password:"\x0d\set timeout 300 \x0d\send "$password\r"\x0d\set timeout 300 \x0d\send "exit\r"\x0d\expect eof

现有解决方案有expect 和 sshpass 等第三方解决方案,因不想引入过多依赖决定自己实现。

通过查找 资料 发现以上方案是对tty直接写入来达到效果,但是我用bash脚本直接对tty写入确只能在屏幕显示,不能被程序获取,于是转入使用ruby按照以上资料来自己实现,

发现将第6,7,8行注释掉之后报如下错误:

对ssh_askpass 查找 资料 发现环境变量 SSH_ASKPASS DISPLAY可以定义一个程序用来在ssh没有联接终端时提供密码。

SSH_ASKPASS 设为提供密码的程序

DISPLAY 设为 :0

测试发现ssh 调用 SSH_ASKPASS 定义的程序时,带 参数执行,如

# $SSH_ASKPASS root@xxxxxxxx's password:

只要程序打印正确密码,ssh即可验证通过,于是问题解决,也不需要用ruby去实现了。

示例如下:

项目GitHub地址

这样即可自动输入密码ssh登录。

网上几乎都是expect 和 sshpass等方案来实现自动输入密码,此方法原理网上资料少有,记录之。

20161124

以上就是关于linuxexpect命令不能用全部的内容,包括:linuxexpect命令不能用、linux下利用expect SHELL编程问题、expect '=', ',', ';', 'asm', or '_attribute_' before '{' token 是什么意思!!!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9876848.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存