社区
C语言
帖子详情
求教一个linux下对一个命令行程序输入字符的方法
caven
2011-02-10 03:15:50
有一个其他人开发的linux命令行程序 A。
我需要用另一个程序或者脚本B(与上一个程序在一台机上),对A输入几个字符串。
我尝试了 键盘模拟 与 shell 的expect方式都搞不定。
键盘模拟方式把字符都传到自己的程序B,传不到A上。
...全文
270
11
打赏
收藏
求教一个linux下对一个命令行程序输入字符的方法
有一个其他人开发的linux命令行程序 A。 我需要用另一个程序或者脚本B(与上一个程序在一台机上),对A输入几个字符串。 我尝试了 键盘模拟 与 shell 的expect方式都搞不定。 键盘模拟方式把字符都传到自己的程序B,传不到A上。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
caven
2011-02-11
打赏
举报
回复
搞定了!多谢大家!
#bwcli.sh
cp ./bwcli.exp /export/home/bwadmin/
cd /export/home/bwadmin/
chown bwadmin:bwadmin bwcli.exp
chmod 777 bwcli.exp
su - bwadmin -c "./bwcli.exp>>log.txt password script.txt 60"
#bwcli.exp
#!/usr/bin/expect
if { $argc != 3 } {
exit 1
}
set pwd [lindex $argv 0]
set filename [lindex $argv 1]
set exectime [lindex $argv 2]
spawn bwcli
set timeout 8
expect {
"_CLI>" {send "lo\n"}
eof { exit 0 }
timeout { exit1 }
}
expect {
"*Password:*" {send "$pwd\n"}
eof { exit 0 }
timeout { exit1 }
}
expect {
"*admin logging in...*" {send "\n"}
eof { exit 0 }
timeout { exit1 }
}
expect {
"_CLI>" {send "r /opt/$filename pwprotoff\n"}
eof { exit 0 }
timeout { exit1 }
}
set timeout $exectime
expect {
"Please confirm (Yes, Y, No, N):" {send "Y\n"}
eof { exit 0 }
timeout { exit1 }
}
李亚超
2011-02-10
打赏
举报
回复
重定向
justkk
2011-02-10
打赏
举报
回复
仅供参考
#!/usr/bin/expect -f
spawn bwcli
expect "Password: "
send "password\r"
sys
Res
expect eof
weerweer
2011-02-10
打赏
举报
回复
sh的read?
kingstarer
2011-02-10
打赏
举报
回复
expect 是这样用的吗
建议你查查用法 我看你这样用好像不对 变成重定向输入的内容了
caven
2011-02-10
打赏
举报
回复
bwcli<<!
user
password
!
执行完user 程序提示输入密码:
AS_CLI> Password:
这个时候 password 无法输入.
这样也搞不定
bwcli<<!
lo
expect {"*Password:*" { send "password\n"}}
sys
Res
!
justkk
2011-02-10
打赏
举报
回复
echo "123"|A
或者
A<<!
123
456
!
可否?
caven
2011-02-10
打赏
举报
回复
A 可以由B 以shell的方式启动, A 是没有入参的,程序启动后可以通过命令行读取命令. 现在的问题是没有让A免的交互工作.A的命令行模式类似与交换机的配置模式.
justkk
2011-02-10
打赏
举报
回复
A不能重新运行?
A从哪儿读取输入?
caven
2011-02-10
打赏
举报
回复
A 是一个在运行的程序,B 只知道A的任务号。 无法把设备块中的数据重定向到A。
S_aladdin
2011-02-10
打赏
举报
回复
重定向啊,|
linux
命令行
打开写字板,
linux
如何在不打开文本编辑器( vi )的情况下对文件进行编辑?,真心
求教
...
满意答案qnvxbr2012.12.17采纳率:46%等级:2已帮助:21285人"我记得echo能,下边是我给你找到用法,你看看
Linux
下echo命令详解
Linux
的echo命令, 在shell编程中极为常用, 在终端下打印变量value的时候也是常常用到的, 因此有必要了解下echo的用法echo命令的功能是在显示屏上显示一段文字,一般起到1个提醒的作用。该命令的一般格式为: ech...
LINUX
命令行
设置代理上网
/etc/resolv.conf修改DNS /etc/profile增加 export http_proxy=http://domain\\user:pwd@proxy_addr:port export https_proxy= http://domain\\user:pwd@proxy_addr:port export f
Android AM
命令行
启动
程序
的
方法
在Android中,除了从界面上启动
程序
之外,还可以从
命令行
启动
程序
,使用的是
命令行
工具am.启动的
方法
为wangwei@wwG41D3:~$ adb shell $ su# am start -n {包(package)名}/{包名}.{活动(activity)名称}
程序
的入口类可以从每个应用的AndroidManifest.xml的文件中得到,以计算器(calculator)为例
linux
基础(一)
1.
Linux
常见发行版
Linux
发行版有三大主流分支:Debian、Slackware、Redhat,包含的主要发行版分别如下: Debian Ubuntu
Linux
mint Knopix Slackware S.u.S.ESLES-SuSE
Linux
EnterpriseOpenSuSE Redhat RHEL-RedHat Enterprise
Linux
CentOS-Community ENTerprise Fedore Core 除了三大主流...
Linux
下echo命令详解
Linux
的echo命令, 在shell编程中极为常用, 在终端下打印变量value的时候也是常常用到的, 因此有必要了解下echo的用法echo命令的功能是在显示器上显示一段文字,一般起到
一个
提示的作用。该命令的一般格式为: echo [ -n ]
字符
串其中选项n表示输出文字后不换行;
字符
串能加引号,也能不加引号。用echo命令输出加引号的
字符
串时,将
字符
串原样输出;用echo命令输出不加引号
C语言
70,023
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章