2017-09-22 12 views
-1

私はLinuxには新しく、次のmakefile構文の機能を理解しようとしています。私は頭やawkのような別のコマンドについて知っていますが、次のスクリプトの効果が出るようにはできませんでした。GNU makefileのhead、cat、awkの目的は何ですか?

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

スイッチとコマンドの詳細な説明は高く評価されます。

+0

「$$((0x100))」は「256」を意味しますが、私はキャラクターに支払われます!」 – Kaz

答えて

2

2ドルはちょうどone escaped dollar signです。

ので:

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

0x100は "256" これが、その後first prerequisite.-と一緒cat'dさproduces and endless stream of NULL characters0x00

はそのSTDINある/dev/zeroから最初の256のバイトを取得していますさ配管され、$<がそのリンクで説明されていますが、makefileのもので、Linux /シェルのものではありません)

次いで、その1ビット( -g1)を分離オクテット、およびライン当たり4つのオクテット( -c4)とヘキサとして出力 catの結果を意志

xxd -g1 -c4 

xxdのためにパイプさ

。私はawkがそれを行うことができるように、ここにセパレータがあると思います。その後、彼らとまた別のmakefileのものです[email protected]filename of the target ruleに標準出力をリダイレクトの間には、文字とその順序で列5、4、3、2を印刷する

awk '{print $5$4$3$2}' > [email protected] 

をawkにするためにパイプされ

、Linux /シェルのものではありません

なぜ私は考えていません。

関連する問題