当前位置:  技术问答>linux和unix

为何makefile中执行的结果和直接在命令行中执行结果不一致?

    来源: 互联网  发布时间:2016-09-30

    本文导语:  # makefile 文件内容: test:         currentdir=`pwd`; echo ${currentdir};  pwd ; dir2=${currentdir%/*}; echo ${dir2}; 然后执行make显示如下: zyd@HCC:~/projects/make> make test currentdir=`pwd`; echo ;  pwd ; dir2=; echo ; /home/zyd/projects/make zyd@HC...


# makefile 文件内容:
test:
        currentdir=`pwd`; echo ${currentdir};  pwd ; dir2=${currentdir%/*}; echo ${dir2};

然后执行make显示如下:
zyd@HCC:~/projects/make> make test
currentdir=`pwd`; echo ;  pwd ; dir2=; echo ;

/home/zyd/projects/make

zyd@HCC:~/projects/make>

明明这里的`pwd`不是为空,为什么 echo ${currentdir}; 就成了 echo ;了呢?


|
关键是makefile中的$需要转义,使用$$
test:
  currentdir=`pwd`; echo $${currentdir}; pwd ; dir2=$${currentdir%/*}; echo $${dir2};

|
“明明这里的`pwd`不是为空,为什么 echo ${currentdir}; 就成了 echo ;了呢?”

在显示第一行的时候,只是将要执行的命令显示出来但并没有执行,此时currentdir还没有被赋值,所以它是空的,输出就成了"echo"。

    
 
 

您可能感兴趣的文章:

  • Makefile是如何输出执行的路径的,表示执行的是那个Makefile
  • 关于makefile的问题。一个makefile如何生成两个可执行文件。
  • Makefile中目标的执行顺序
  • solaris下的makefile文件包含的shell脚本不执行
  • 怎样用Makefile生成两个可执行文件?
  • Makefile怎么写才能让生成的可执行文件让GDB调试呢?
  • makefile只执行到一半,就不执行,怎么回事?
  • 请问 makefile 嵌套执行,在不同目录中,同一文件的相对路径发生变化怎么办?
  • 急求!!一个makefile如何生成两个可执行文件
  • 执行make操作时显示"Makefile:5: *** 遗漏分隔符 。 停止。"
  • 关于makefile中无法执行mkdir,cp命令的问题
  • 执行makefile 时提示说 ' does not exist or cannot be read。
  • 奇怪:为什么我的Solaris上执行configure后生成的Makefile文件里面会有很多错误的指令?
  • 请问怎么样将linux下的makefile转成window下执行?
  • 利用Makefile生成可执行文件的问题
  • 请大侠帮帮忙,我的makefile的内容在执行make的时候怎么不连续?
  • 唉! 一样的shell, 在shell下执行没有问题,但在makefile里就是不行,请 大侠指教!
  • 请教在makefile中如何打包2个可执行文件?
  • Makefile 加了-g没有生成Debug可执行文件
  • 只有一行代码的Makefile文件,在执行make命令时出错。请帮忙看看 ,谢谢
  • (求助)Makefile 中如何获得系统命令结果
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • make命令可以在命令行中重新定义一个macro,用来覆盖makefile中的macro吗?
  • 如何通过修改makefile.am或configure.ac追加make命令呢??
  • Makefile中的命令2问,谢谢
  • makefile中的这条命令是什么意思?
  • 求助 makefile 中一行命令
  • 救急:我的是Redhat Linux7.2,我从INTEL那下了个网卡驱动源码,我在终断上直接输入它的Makefile命令:make,却出大堆错,为什么啊??
  • Makefile.in,Makefile.am,Makefile.bor应该怎么用?
  • makefile.am和makefile.in是什么文件,与makefile有什么联系吗?
  • 最近在学习linux C 看到了makefile部分,觉得makefile的语法很难理解,Makefile 的语法是不是shell语法?
  • docker中文入门学习手册 iis7站长之家
  • 从网上载了个C++程序的源代码,包含38个.cpp和.h,还有makefile.in和makefile.am两个文件,但无configure和makefile.请问怎么编译?谢谢!
  • 有makefile.am,有 makefine.in 为什么就是没有Makefile?
  • makefile如何调用文件目录下的makefile
  • 请教根据Makefile.am自动生成Makefile的问题
  • 怎麼樣使Makefile.in生成Makefile?
  • 【急!】一个程序里有好多文件夹里都有Makefile,如何找到最管用的makefile
  • 【makefile使用】请问怎样在shell中获取makefile的最终目标?
  • unix下面make makefile文件,提示“makefile is up-to-date",怎么办呀?
  • Makefile使用遇到的问题!"Makefile:3:missing the separator.stop"在线等待.......
  • 下的tar.gz源码里只有makefile.in和makefile.am
  • 一句 makefile 的解释 -- makefile 与 shel 结合
  • linux makefile error :Makefile:335: *** commands commence before first target。
  • [test@localhost ~]$ cat <makefile >catfile 跟cat > catfile <makefile是一样的吧?
  • 关于makfile,makefile.in, makefile.am. configure之间的关系
  • win32下编译Linux 下的项目(makefile.am和makefile.in)
  • make -f makefile 时提示 Make: Must be a separator on rules line 5. Stop. 为什么,makefile 如下


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3