shell makefile 的区别和总结记录

    Shell是Linux系统的操作命令行界面,是人机交互的一种方式,同时Shell也是一种编程语言,可以用于编写Shell脚本程序,在Linux中常用的脚本语言是bash。

    makefile,是一个编译脚本,用来完成编译工作的。

    所以,可以理解他们都可以作为很多命令的集合,一个用于系统处理(通用工具),一个用于编译处理(特定工具)。通常makefile可以调用shell脚本,以下列出两者在使用上的常用区别。makefile使用可参考(https://blog.csdn.net/zg915355901/article/details/106082302

    1,等号(=)两边空格。shell:不允许有空格。Makefile:允许有空格

    2,Makefile中的shell,每一行是一个进程,不同行之间变量值不能传递。所以,Makefile中的shell不管多长也要写在一行。可以用\来分行写,格式更清晰一点。

    3,shell中所有引用以$打头的变量其后要加{}, 而在Makefile中的变量是以$打头的后加()。

Makefile: 
PATH="/data/"
SUBPATH=$(PATH)
Shell: 
PATH="/data/"
SUBPATH=${PATH}

    4,Makefile中如果你需要调用shell中的变量(或者正则表达式中锚定句位$),都需要加两个$符号($$)

PATH="/data/"
echo ${PATH}/*Makefile中变量,即"/data"*/
echo $$PATH /*shell中的变量*/

    5,条件判断if
shell:
if ( $NOW_VAR == 1 ) ; then
echo "var is 1"
elif ( $NOW_VAR == 2 ) ; then
echo "var is 2"
else
echo "var is not 1"
fi

Makefile:
NOW_DIR=$(shell pwd)
ifeq ($(NOW_VAR), 1)
NOW_DIR="in 1"
else ifeq ($(NOW_VAR), 2)
NOW_DIR="in 2"
else
NOW_DIR="in not 1 or 2"
endif
    6,for 循环

shell: 
for pid in ${pids};
do
xxxxx
done

while true
do
xxxx
done

makefile: 
file=1 2 3 4 5
all:
    for name in $(file); \
    do \
    echo $$name;  \
    done

    7,待更新 

    


   


   
 

 

 

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值