linux - 在 shell 脚本中创建结构(数据结构)

标签 linux shell data-structures

我真的是这个领域的初学者......

我的问题是:如何在 shell 脚本(或 bash,我不确定它们之间的区别)中创建结构

例如在 C 中我们可以简单地:

struct name
{
    __u8 x;
    __u8 y;
    signed short z;
    float t;
    float u;
};

是否可以在 shell 中创建类似的东西?

为什么?

我需要将一些值复制到/proc 文件..但我需要确定它们是 12 个字节,以及它们的顺序,因为我想将它们分配给 linux 内核中的先前结构模块

感谢您提供任何有用的答案或提示

最佳答案

我可以推荐一个更好的工具来完成这项工作吗,Python?它安装在大多数 Linux 系统上,您可以用它编写脚本,只需将适当的 shebang 放在顶部即可:

#! /usr/bin/python

或者,

#! /usr/bin/env python

然后使用struct将值打包成二进制表示的模块。

#! /usr/bin/env python
import sys, struct
# Convert first 5 arguments
args = [f(arg) for f,arg in zip([int,int,int,float,float], sys.argv[1:])]
sys.stdout.write(struct.pack('BBhff',*args))

相当于,

#! /usr/bin/env python
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...

关于linux - 在 shell 脚本中创建结构(数据结构),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7452372/

相关文章:

c - Ubuntu C 程序可加载模块和 undefined symbol

linux - Linux Shell 脚本的奇怪行为

shell - 意外 token 附近的语法错误

shell - 如何在 korn shell 中转义逗号?

data-structures - LinkedList 不提供基于索引的访问,那么为什么它有 get(index) 方法?

c++ - vector模板的make_heap方法是如何工作的?

linux - 将字体嵌入到 PDF 表单中

linux - awk 在后台运行时的输出

string - "Lexicographically minimal string rotation"与 "finding the lexicographical min suffix"相同吗?

linux - 从 bin 文件夹运行 Ubuntu 终端