$() 与 ``

来源:互联网 发布:mac怎么下b站视频 编辑:程序博客网 时间:2024/04/26 14:59
# Makefile

aa=$(shell cat a.c)             直接展开
cc="$(shell cat a.c)"           直接展开

bb=`cat a.c`                         不展开,在Shell中执行cat命令
dd="`cat a.c`"                       不展开,在Shell中执行cat命令


all:
    @echo "=============================================="
    echo ${aa}           输出为空
    @echo "=============================================="
    echo "${aa}"        输出整个文件,echo时没有换行
    @echo "=============================================="
    echo ${bb}           输出整个文件,所有空白以一个空格代替
    @echo "=============================================="
    echo ${cc}           输出整个文件,echo时没有换行
    @echo "=============================================="
    echo ${dd}          原文件输出,保留原文格式
    @echo "=============================================="
    echo $(cat a.c)   输出为空,在Makefile中执行,但无cat命令。
    @echo "=============================================="
    echo "$(cat a.c)" 输出为空,在Makefile中执行,但无cat命令。
    @echo "=============================================="
    echo "$$(cat a.c)" 原文输出,即在Shell中执行cat命令。


为防止发生不必要的麻烦,强烈建议,在使用这两种方法执行命令时,一定要带上双引号。否则如果文件中有"*"等通配符时,可能会产生意想不到的结果。比如“/*” 会被扩展成根目录下所有文件,如果在Makefile执行一个删除动作,会十分危险!如果发生,立即使用exfundelete来恢复!


0 0
原创粉丝点击