$() 与 ``

# 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来恢复!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值