GNU makefile中head,cat和awk的目的是什么

时间:2017-09-22 17:50:53

标签: linux makefile

我是Linux的新手,并试图了解以下makefile语法的功能。我知道不同的命令,如head或awk,但无法弄清楚以下脚本会产生什么影响。

head -c $$((0x100))/ dev / zero |猫 - $< | xxd -g1 -c4 | awk'{print $$ 5 $$ 4 $$ 3 $$ 2}'> $ @

对命令及开关的详细说明将受到高度赞赏。

1 个答案:

答案 0 :(得分:2)

两美元只是one escaped dollar sign

所以:

head -c $((0x100)) /dev/zero

0x100是" 256"所以这是来自/dev/zero的{​​{1}} 0x00

的前256个字节

那就是cat与produces and endless stream of NULL characters -一起是管道输入的标准输出,并在该链接中解释了$<,但它是一个makefile的东西,而不是linux / shell的事情)

 cat - $< 

然后将其传送给xxd

xxd -g1 -c4 

将输出cat的结果作为十六进制,其中1位(-g1)分隔八位字节,每行4个八位字节(-c4)。我想这里的分隔符就位,所以awk可以做到这一点。

然后将其传送到awk

awk '{print $5$4$3$2}' > $@

按顺序打印第5,第4,第3和第2列,它们之间没有字符,并将标准输出重定向到$@ first prerequisite.,这也是另一个makefile的东西,而不是linux / shell事

我不知道为什么。