2013-07-12 33 views
3

我有一个设备,通过xmodem上传文件完成软件更新。自动化xmodem文件上传

我可以用两种方式使用lrzsz(http://ohse.de/uwe/software/lrzsz.html)包来完成此操作。

1)使用屏幕

screen /dev/tty.myserialdevice 115200 

然后

^A:exec !! sz -X file.bin 

2)使用Cu

cu -l /dev/tty.myserialdevice -s 115200 

然后

~+lsz -X file.bin 

现在我想写一个脚本(最好是红宝石或bash脚本)来自动上传文件。

有没有办法将文件导入屏幕或文件或使用标准输入? 当我试图写一个脚本时,我只能打开连接。 但即使如此,我仍然有问题要再次正确关闭此连接。

+0

+1只为使用xmodem,我上次在大约1993年在FIDO和BBS网站上使用过的...;);) – jm666

+0

那么我不会使用它,如果我不必:谢谢,稍微减轻了痛苦;) – benjay

+1

尝试'expect'命令。谷歌的例子。 'expect'允许你在脚本中输入命令,就像你通常输入的那样,所以如果使用正确的'expect script',你应该可以用'〜'来逃避'cu'并发送正确的'sz'命令。 – jm666

回答

4

不知道你是否仍然有这个问题,但我最近不得不拼凑一些类似的情况。

我用屏幕来自动化这部分,因为它有一些命令行选项可以在后台运行。首先,我创建分离屏幕会话,就像这样:

screen -d -m /dev/tty.myserialdevice 115200 

然后,我可以引用我创建的会话与-p0选项,并给它一个命令-X,在这种情况下是要执行命令来自我屏蔽以启动xmodem文件传输。

screen -p0 -X exec \!\! sz -X filetosend 

我在网上的其他地方注意到了!\!\!有时也会使用,所以请记住,如果仍有问题,请尝试。

+0

正是我在找,谢谢! – benjay