微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

可以期待生成bash函数吗?

这是一个非常简化的示例:

# 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的位置参数.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐