我可以建议一个更好的工具来完成这项工作,Python?它已经安装在大多数Linux系统上,你可以用它编写脚本,只需在顶部放置适当的shebang:
#! /usr/bin/python
或者,
#! /usr/bin/env python
然后使用
struct模块将值打包成二进制表示形式。
import sys, struct
args = [f(arg) for f,arg in zip([int,int,int,float,float], sys.argv[1:])]
sys.stdout.write(struct.pack('BBhff',*args))
这相当于什么?
import sys, struct
x = int(sys.argv[1])
y = int(sys.argv[2])
z = int(sys.argv[3])
t = float(sys.argv[4])
u = float(sys.argv[5])
sys.stdout.write(struct.pack('BBhff',x,y,z,t,u))
可以这样调用:
./script.py 1 2 3 4.0 5.0 > /proc/somefile...
编辑:或者从另一个文件中读取:
./script.py `cat args-file` > /proc/somefile...
#!
和解释器之间的空格 :) - Matt Joiner