当前位置: 首页 > news >正文

单位网站建设注意事项今日热搜榜

单位网站建设注意事项,今日热搜榜,wordpress t1主题,杭州网站建设前三以下内容转载于博客Makefile 和 shell 脚本的区别与联系,有删改与内容添加。 参考内容:初学Makefile指南 一、什么是 Makefile? Makefile 描述了整个工程的编译、链接规则。当源码文件比较多的时候就不适合通过输入 gcc 命令来编译&#xf…

以下内容转载于博客Makefile 和 shell 脚本的区别与联系,有删改与内容添加。

参考内容:初学Makefile指南

一、什么是 Makefile?

Makefile 描述了整个工程的编译、链接规则。当源码文件比较多的时候就不适合通过输入 gcc 命令来编译,Makefile 文件描述了编译哪些源码文件、如何编译,每次需要编译工程时只需要使用这个文件就行了。

(1)Makefile的规则中,命令行必须以Tab键开始,不能用几个空格表示。

(2)Makefile中只能使用#进行注释,不能使用//进行注释,而且只能一行一行地注释。

(3)在命令行中输入“make”,make 命令会在当前目录下查找是否存在 Makefile 文件。

二、什么是 shell 脚本?

我们可以直接在shell窗口中输入很多命令来完成某个需求,但是每次用到相同需求时都需要重新输入这些命令,效率比较低下,为此我们可以把这些命令记录在一个文档中,然后去执行这个文档中的命令,这样就能一步操作完成。记录着这些命令的文档,就是shell脚本。换言之,shell脚本就是一些命令的集合,它是一个纯文本文件。

(1)shell 脚本中,命令是从上到下,从左到右,一行行、一句句地开始执行的。

(2)shell 脚本提供数组、循环、条件判断等功能。

(3)shell 脚本扩展名为 .sh,但其实扩展名并不影响脚本执行,见名知意就好。

(4)shell 脚本第一行一般为“#!/bin/bash”,这表示使用bash这个shell程序。

(5)执行shell脚本的方法,其中一种是“./xxx.sh”(首先要给xxx.sh添加可执行权限),另外一种方法是“bash xxx.sh”,或者“. xxx.sh”,或者“source xxx.sh”。它们的区别见博客https://xiefor100.blog.csdn.net/article/details/125584203。

三、Makefile 和 shell 脚本的区别

1、在Makefile中可以调用shell命令。

(1)比如Makefile规则中的命令行就是由shell命令组成的。

x210_sd_config :	unconfig@$(MKCONFIG) $(@:_config=) arm s5pc11x x210 samsung s5pc110@echo "TEXT_BASE = 0xc3e00000" > $(obj)board/samsung/x210/config.mk

(2)比如xxx = $(shell 紧接着的是shell代码)。

xjh@ubuntu:~/iot/tmp$ cat Makefile 
usr_num = $(shell who | wc -l)all:@echo "用户数目是${usr_num}"xjh@ubuntu:~/iot/tmp$ make
用户数目是2
xjh@ubuntu:~/iot/tmp$

(3)执行 Makefile 规则中的命令时,通过创建一个进程来执行一行的内容,即每一行命令对应着一个进程,不同命令行对应着不同进程,因此不同命令行之间的变量不能传递。有时候一行的命令很长,为了确保一行的shell命令都在同一个进程中执行,我们需要在末尾添加“\”。另外,一行的命令中,不同的命令语句之间用分号进行连接。

MPC8360ERDK_33_config \
MPC8360ERDK_66_config \
MPC8360ERDK_config:	unconfig@mkdir -p $(obj)include@if [ "$(findstring _33_,$@)" ] ; then \$(XECHO) -n "... CLKIN 33MHz " ; \echo "#define CONFIG_CLKIN_33MHZ" >>$(obj)include/config.h ;\fi ;@$(MKCONFIG) -a MPC8360ERDK ppc mpc83xx mpc8360erdk freescale

2、在shell中通配符是“*”,在Makefile中通配符是“ %”。

3、在shell中不允许 “=” 号两边有空格,在Makefile中允许变量赋值时,“=” 号两边有空格。

4、在shell中,$() 放命令,${} 放变量;在Makefile中,$() 和 ${} 都能引用变量,如果不加()或者{},则$会与$后面字符串的第一个字符组合,比如下面代码的$PATH,其实是${P}ATH,因为变量P没有定义,则${P}为空。

xjh@ubuntu:~/iot/tmp$ cat Makefile 
VAR = valueall:@echo $VAR@echo ${VAR}@echo $(VAR)xjh@ubuntu:~/iot/tmp$ make
AR
value
value
xjh@ubuntu:~/iot/tmp$

5、如果在Makefile中定义了一个变量,而Makefile中所调用的shell命令也定义了一个同名的变量,在使用变量的时候,如何区分它是引用shell的变量还是Makefiel中的变量呢?Makefile规定,如果在Makfile中引用shell变量,那么该shell变量前应该添加两个$$符号。比如下面代码,$$subdir表示引用shell中的变量subdir, 而${subdir}表示引用Makefile中的变量subdir。

xjh@ubuntu:~/iot/tmp$ cat Makefile 
SUBDIR = src example
subdir = xxxall:@for subdir in $(SUBDIR);\do\echo "building " $$subdir $${subdir};\  #$$(subdir)实测不行echo ${subdir} $(subdir);\donexjh@ubuntu:~/iot/tmp$ make
building  src src
xxx xxx
building  example example
xxx xxx
xjh@ubuntu:~/iot/tmp$ 

6、在Makefile中,shell命令需要放在规则的命令中,直接放在规则之外是不允许的。

xjh@ubuntu:~/iot/tmp$ cat Makefile 
VAR = Hello
echo ${VAR} #这一条shell命令直接放在规则之外是不允许的all:echo ${VAR}
xjh@ubuntu:~/iot/tmp$ make
Makefile:2: *** missing separator.  Stop.
xjh@ubuntu:~/iot/tmp$ 

如果想把shell命令放在规则之外,需要使用 xxx = $(shell shell命令列表)的形式。

xjh@ubuntu:~/iot/tmp$ cat Makefile 
VAR = Hello
print_string=$(shell echo ${VAR})all:@echo ${VAR}@echo ${print_string}xjh@ubuntu:~/iot/tmp$ make
Hello
Hello
xjh@ubuntu:~/iot/tmp$ 

7、shell中执行命令时没有回显,执行Makefile中规则的命令行时,如果命令行之前没有@符号,则一般会先打印出要执行的命令,然后执行命令。

未完待续! 

http://www.ds6.com.cn/news/79474.html

相关文章:

  • 邢台移动端网站建设网站seo优化方案
  • 建设企业网站电话是多少集团网站推广
  • 广州网站备案公司天津seo托管
  • 设计师的个人网站网站推广排名哪家公司好
  • 建网站规则小程序开发需要多少钱
  • 网站开发前端兼职上百度推广的网站要多少钱
  • 做水果的b2b网站商丘seo教程
  • 外贸网站制作有哪些seo查询百科
  • 餐饮加盟网站制作关键词的作用
  • 房山广州网站建设seo还有前景吗
  • 锦州网站建设怎样个人免费推广网站
  • 学做ps的网站网站怎么优化搜索
  • 在运行 打开wordpress网站seo查询工具
  • 网站seo 工具google站长工具
  • 鲜花网站数据库建设重庆森林电影简介
  • 多个织梦dedecms网站怎么做站群搜索引擎yandex入口
  • 网页设置背景图片武汉seo优化代理
  • 网站ip域名查询百度识别图片找图
  • 东莞工业设计公司优质的seo快速排名优化
  • 成都专业建网站公司国外seo
  • 微信小程序可以做视频网站吗2021年经典营销案例
  • 开源企业cms建站系统潍坊网站建设平台
  • 教育网站怎么做广告投放怎么做
  • 网站框架有哪些百度导航和百度地图
  • 网站开发wbs实例电商代运营公司十强
  • 东莞长安做网站班级优化大师官方免费下载
  • 衡水哪儿专业做网站百度账号是什么
  • 做地方旅游网站目的意义免费的短视频app大全下载
  • 建立网站费用怎么做会计分录营销方法有哪几种
  • 上海网站制作多少钱爱站网综合查询