a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 110|回复: 0

[综合辅导] Linux辅导:LinuxMake规则深入解析(3)

[复制链接]
发表于 2012-8-4 12:07:07 | 显示全部楼层 |阅读模式
对于结果,有一个怪异的就是,原来脚本中的$$i,在输出是就变成了$i。这时的for是不是就是一样了。现在可以先做个结论,make处理脚本可shell处理脚本几乎雷同,只是个别情况下要做变通。make会对$x进行扩展。比如:   1.ec=echo3 N- j3 c( o% y8 D8 f. [$ ?
  2.test:9 ~( f. _. L4 e
  3.$(ec) 'ddd'0 X" i$ L0 K& f
  就可以在屏幕上看到输出:. P& Q9 N1 O- j1 f9 f
  1.echo 'ddd'
! k+ |0 u$ t6 ~5 j  2.ddd
! X4 |$ Y- j0 o8 L1 A5 W2 V: p  所以应该是make对Makefile进行处理,将其变成shell可执行的脚本,最后由shell解释器来执行有make翻译过的脚本。并且是翻译一句然后shell执行一句,对于这个可以再做个验证。
$ d; ]( C: Y$ F6 N7 O6 j* \  1.e =echo4 Q6 j' c/ L2 K6 a0 g
  2.prt=ls
/ c7 O6 V7 a( ~8 A; ]7 }' \  3.clean:
" o7 p; \! C5 W9 g, ~  4.$(prt)
0 s) [$ X. B) s( Y4 ^# B3 {  5.for i in *.x;do $e $$i;done0 U/ i$ {5 a7 R8 P8 m
  其输出为:5 Y; V) v0 N# f
  1.ls
$ P! M: I1 L# g) u$ |: }  2.a.sh a.x b.x Makefile yy.x
* G+ R" a% P" F" s9 G* |% `* r  3.for i in *.x;do echo $i;done
; W) @0 S2 t! T! S. V* G  4.a.x. ^/ w( |# q% r/ x. O
  5.b.x
# G" B5 [6 D; w; W: b3 W  6.yy.x9 G) w7 U" ^- H# d
  可以看到,$(prt)被扩展后就立即执行了。后面的for也是这样。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-21 11:43 , Processed in 0.190054 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表