社区
C语言
帖子详情
求教一个linux下对一个命令行程序输入字符的方法
caven
2011-02-10 03:15:50
有一个其他人开发的linux命令行程序 A。
我需要用另一个程序或者脚本B(与上一个程序在一台机上),对A输入几个字符串。
我尝试了 键盘模拟 与 shell 的expect方式都搞不定。
键盘模拟方式把字符都传到自己的程序B,传不到A上。
...全文
317
11
打赏
收藏
求教一个linux下对一个命令行程序输入字符的方法
有一个其他人开发的linux命令行程序 A。 我需要用另一个程序或者脚本B(与上一个程序在一台机上),对A输入几个字符串。 我尝试了 键盘模拟 与 shell 的expect方式都搞不定。 键盘模拟方式把字符都传到自己的程序B,传不到A上。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
】实现
一个
简易的shell
命令行
本文介绍在
Linux
系统中使用C语言实现
一个
简单的shell
命令行
程序
。先分析项目实现,包括获取
命令行
、解析、建立子进程等步骤。接着逐步实现各功能,如获取
命令行
、解析
字符
串、判断指令、执行普通命令。最后给出完整项目代码,助力读者学习。
〖
Linux
〗类 Shell
命令行
模拟
程序
开发
本文围绕
Linux
类Shell
命令行
模拟
程序
开发展开。先进行整体结构分析,明确实现shell需循环获取、解析
命令行
等步骤。接着代码演示,涵盖显示提示符、获取用户
输入
、
字符
串切分、添加ls命令颜色、处理内建命令、创建进程及
程序
替换等内容,详细介绍各步骤实现
方法
。
Linux
如何从
命令行
执行
程序
本文详细介绍了
Linux
系统中如何从
命令行
执行
程序
,并解析了
程序
启动时堆栈中的
命令行
参数和环境变量的存储方式。通过调试器展示了如何观察和理解堆栈中的信息,包括
程序
名称、
命令行
参数和环境变量的存储布局。
Linux
命令行
字符
画工具
介绍
一个
在
Linux
下运行的
字符
画生成工具,可生成多种风格的
字符
画,适用于
命令行
模式下美化文字提示。
输入
带空格
字符
串的两种
方法
本文介绍了两种在C/C++中
输入
包含空格的
字符
串的
方法
:一是使用get()函数,但该
方法
在
Linux
环境下可能引发警告;二是使用scanf()函数配合特定格式说明符,能够直到遇到回车才结束
输入
。
C语言
70,038
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章