标签:expect bash tcl linux function
这是一个非常简化的示例:
# expect -c "spawn socat -v -,raw,echo=0,nonblock /dev/ttyS0; interact"
Expect执行一个嵌入式脚本,该脚本生成socat以便连接到串行设备.但是,如果我们有一个称为serial的bash函数(这非常方便),该怎么办:
# serial(){ socat -v -,raw,echo=0,nonblock /dev/ttyS0;}
# expect -c "spawn serial; interact"
spawn serial
couldn't execute "serial": no such file or directory
while executing
"spawn serial"
是否可以强制期望在没有包装脚本或二进制文件的情况下执行功能?
解决方法:
要在spawn中运行bash函数或内置函数,必须使spawn成为运行该函数或内置函数的bash子进程.这是通过bash的-c选项完成的,它使您可以提供一些内联脚本来运行bash.
spawn bash -c "serial"
请记住,-c之后的单个参数是要运行的内联脚本.之后的参数将分配给bash的位置参数.
标签:expect,bash,tcl,linux,function 来源: https://codeday.me/bug/20191118/2030035.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。