变量分类 变量分为环境变量和shell变量 环境变量相当于全局变量,适用于当前SHELL(父进程)和由父进程调用的子进程,如打开编辑器vi、脚本、应用或是再打开一个子shell。...shell变量就是当前shell使用的变量了,它只是“本地“有效,相当于本地变量,不适用于其他子进程,只在当前shell生命周期内有效 永久变量 不管是自定义的变量还是通过export导为环境变量的自定义变量都只是在...shell生命周期内有效,这样的变量就是临时变量,如果我想设置一个变量使其永久生效怎么办呢?...可以修改两个配置文件:/etc/profile和~/.bashrc,前者对所有用户有效,后者只对当前用户有效。
其中shell和makefile是linux进阶版,对于后期学习uboot和linux内核打下基础。...shell简单理解为:多个命令行任务放在一个文件中一起执行(xxx.sh)运行方式为:source xxx.sh读写方式为:vim xxx.sh(目前也支持notepad软件)基本执行语句:1.操作文件常用命令...rm a.c //删除文件mkdir a //创建文件夹touch a.c //创建文件vim a.c //打开文件2.变量赋值常用命令// 在shell和makefile...中没有break,是自动跳出的)i=2case $i in1) echo "1" ;;2) echo "2" ;;esac//打印结果为2makefile1.文件创建 touch makefile2.运行...=//变量没有赋值,则执行该条赋值语句+=//在变量后面再蓄接(在shell和makefile中变量大多是字符串)设置环境变量设置环境变量(用于工程中别的makefile文件使用)export A//一般大写表示
在Makefile中可以使用函数来处理文本,从而让我们的命令或是规则更为灵活和智能。make所支持的函数也不算很多,不过已经足够我们的操作了。函数调用后,函数的返回值可以当做变量来使用。...1.函数调用语法 $( ) #或 ${ } 函数调用以$开头,以圆括号或花括号把函数名和参数括起,像是对一个变量的引用...注意:该函数在执行时会对它的参数进行两次展开,第一次展开是由 eval 函数本身完成,第二次是函数展开后的结果被作为 makefile 内容时由 make 解析时展开。...5.4 shell 原型: $(shell ) 功能:shell函数也不像其它的函数。...顾名思义,它的参数是操作系统的Shell命令,shell函数把执行Shell命令后的输出作为函数返回。 示例: $(shell cat foo) 返回 foo。
给很多刚接触Makefile的人: 1、Makefile中可以嵌入shell脚本,而且能像shell脚本中一样,各种命令、控制结构都可使用。 2、Makefile的主要结构是 ......只有在command位置的shell脚本才是有效的,也就是只有在“生成目标的规则处”写的shell脚本才是shell脚本,其它位置的shell都是无效的。...3、Makefile中的shell,不同的行在不同的进程中执行,不同的行直接不能传递变量,所以很多时候shell都尽量使用反斜杠()来把相关的内容串成一行。...4、Makefile变量和shell变量是两个不同的东西,并且为了避免Makefile变量和shell变量冲突,引用Makefile变量最好使用$(Makefile_Var),引用shell变量时最好使用...5、Makefile的多字符变量只能使用$(VAR)或${VAR}来引用,不能使用$VAR,$VAR会被解释成$(V)AR.
/bin/bash # shell函数和重定向 # shell 函数 # 函数的定义格式如下 # [ function ] funname [()] # { # action; # [return...return后跟数值n(0-255) demoFun(){ echo "这是一个hello world函数" } demoFun funWithReturn(){ echo "输入第一个数字...# 函数参数 # 在Shell中,调用函数时可以向其传递参数。...在函数体内部,通过 n 的形式来获取参数的值,例如,1表示第一个参数, funWithParam(){ echo "第一个参数$1" echo "第二个参数$2" echo "参数的总个数是...# 如果希望屏蔽 stdout 和 stderr,可以这样写:command > /dev/null 2>&1 # shell文件包含 # . filename 或者 source filename
/test.sh 数组元素个数为: 4 数组元素个数为: 4 Shell函数 定义一个普通函数 linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。...shell 函数!...sh test.sh 这个函数会对输入的两个数字进行相加运算... 输入第一个数字: 1 输入第二个数字: 1 两个数字分别为 1 和 1 ! 输入的两个数字之和为 2 !.... # 注意: 所有函数在使用前必须定义,这意味着必须将函数放在脚本开始部分,直至shell解释器发现他时才能使用 # 调用函数仅使用函数名即可 函数参数 在Shell中,调用函数时可以向其传递参数。...Shell脚本互相调用 和其他语言一样,Shell 也可以包含外部脚本。
第四章 shell和环境变量 4.1 shell简介 4.1.1 编译器 一台计算机从基本架构上讲,由最基本的硬件组成硬件结构(如:cpu、内存、主板、声卡、显卡等),我们知道,硬件组成完备,但未安装操作系统的计算机被称为...4.1.2 shell简介 shell是linux内核的一个外壳,它包在linux内核的外面,为用户和内核之间的交互提供了一个接口。...4.2.2命令分类 Linux中,系统命令会根据命令程序所在位置不同,将命令划分为两大类:内建命令和外部命令。...系统环境变量配置文件 针对整个Linux系统生效,所有账号登录后都会遵守 /etc/bashrc(针对shell) /etc/profile(针对外围程序) 个人环境变量配置文件...alias ---查看系统中的命令别名 unalias wk ---取消命令别名 注:alias命令后可见到系统shell自带的和用户自定义的命令别名。
比如java mvn, 这些环境变量配置在/etc/profile 中, 但jenkins执行的时候并没有加载....因此, 自定义的变量应该定义在/etc/profile.d/*.sh 1.登录shell 所谓登录shell,指的是当用户登录系统时所取的那个shell,登录shell属于交互式shell。...bash shell处理文件的顺序如下: 1:/etc/profile 2:/etc/profile.d等待配置文件 3:$HOME/.bash_profile 会加载$HOME/.bashrc和/etc...交互式非登录shell 如果启动了一个bash shell而没有登入系统(如在CLI提示符中键入bash), 则启动了一个交互式非登录shell..../etc/bashrc fi 登录shell的初始化文件(比如.bash_profile)通常会运行这个文件。这样,登录shell和非登录shell都可以使用.bashrc中的命令。
blog.csdn.net/10km/article/details/50444643 项目总体是用ant来控制编译的,但有一些用c/c++写的native的动态链接库是用cmake来生成Makefile...总体的过程是这样的: 步骤1.为了让ant能控制c/c++代码的编译,首先就需将cmake生成Makefile的过程脚本化。...步骤2.在ant脚本中调用步骤1中的脚本来实现Makefile生成 步骤3.在ant脚本中调用make实现c/c++代码编译 本文就先讲讲步骤1的做法,步骤2,步骤3参见《ant调用make...实现Makefile编译》 步骤1 因为项目的设计是跨平台的,所以需要在windows和linux下分别实现不同的脚本 linux sh脚本实现,newprj.sh: #!...两个版本的编译器共存,所以 这里首先就要检测编译器版本,指定合适的编译器,参见我的另一篇博文《cmake 生成Makefile时指定c/c++编译器》。
%是Makefile的通配符 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/126063.html原文链接:https://javaforall.cn
04-Shell-环境变量 shell 环境变量 1.1 系统自带变量 [root@node1 ~]# echo $PWD /root [root@node1...echo $BASH_VERSINFO 4 [root@node1 ~]# echo $GROUPS 0 [root@node1 ~]# echo $SHELL
笔记内容: 8.6 管道符和作业控制 8.7/8.8 shell变量 8.9 环境变量配置文件 笔记日期:2017.8.15 8.6 管道符和作业控制 ?...set命令也可以查看变量,不过不仅仅查看系统的变量,还能查看用户自定义的变量,在CentOS6之前这个命令只会显示系统变量和自定义变量,在CentOS7则多了很多shell脚本相关的东西: ?...8.9 环境变量配置文件 ? 环境变量的配置文件有两大类,一是系统层次维度的配置文件在etc目录下,二是用户层次维度的配置文件在用户的家目录下。...profile文件是用户登录的时候会加载到 bashrc文件是在用户、系统执行一些shell脚本的时候会加载到 系统层次的profile和bashrc文件一般情况下不要去动,如果要修改的话就修改用户层次的....bashrc_profile和.bashrc文件。
说起函数调用,相信大家也不会陌生,然而对于初学Shell的我来说,Shell中函数调用方式却有点让我不太习惯,自己也走了不少的弯路,因为传递参数时出了一个很“自然”的错误,也让我吃了不少的苦头,所以总结一下...Shell中函数的调用方法。...一、Shell中函数的定义 为了方便程序和管理和模块化并减少代码的重复,函数的确是一个好东西。...int cmp(int a, int b),那么我就会在函数中使用到函数头中声明的变量a和b,而在Shell中却没有定义参数,那我的函数又需要用到这两个参数,怎么办好呢?...这点与在静态语言中的函数参数传递是很不同的,因为在Shell中变量的使用并不需要先定义,所以要使用变量,让Shell知道它是一个变量,并要传递它的值时,就是用$n,而不能直接用n,否则只把n当作一个字符来处理
patsubst ( patten substitude, 匹配替换的缩写)函数。它需要3个参数:第一个是一个需要匹配的式样,第二个表示用什么来替换它,第三个是一个需要被处理的由空格分隔的字列。...参考文献 Makefile中foreach函数使用方法:https://blog.csdn.net/yanlaifan/article/details/71402771 Makefile中wildcard...、notdir、patsubst函数的用法:https://blog.csdn.net/zqj6893/article/details/9066225 Makefile中的wildcard用法:Makefile...//blog.csdn.net/liangkaiming/article/details/6267357 --------------------- Author: Frytea Title: Makefile...中部分函数的使用 Link: https://blog.frytea.com/archives/466/ Copyright: This work by TL-Song is licensed
notdir,wildcard和patsubst是makefile中几个有用的函数,以前没留意过makefile中函数的用法,今天稍微看看~ 1、makefile里的函数 makefile里的函数使用...,和取变量的值类似,是以一个‘$’开始,然后是一个括号里面是函数名和需要的参数列表,多个变量用逗号隔开,像这样 return = $(functionname arg1,arg2,arg3…)。...传说中的万能makefile ########################################################### # Generic makefile # ... # 你可以隨便更改和散發這個文件 # 而不需要給原作者什榮譽。 # (你好意思?)
环境变量一般指的是用export内置,命令导出的变量,用于定义shell的运行环境、保证shell的正确执行。 shell通过环境变量确定登录的用户名、PATH路径、文件系统等各种应用。...环境变量可以在命令行中临时创建,但是用户推出shell终端,变量即丢失,如果要永久生效,需要修改环境变量配置文件 用户个人配置文件 ~/.bash_profile 、~/.bashrc 远程登陆用户特有文件...set,输出锁头变量,包括全局变量、局部变量 image.png env,只显示全局变量 declare,输出所有变量,等同set export,显示和设置环境变量值 撤销环境变量 unset变量名,...删除变量或函数 设置只读变量 readyonly,只有shell结束,只读变量失效 image.png 系统保留环境变量关键字 bash内嵌了诸多环境变量,用于定义bash的工作环境 #过滤出格式化所有的...linux环境变量 export | awk -F '[ :=]' '{print $3}' image.png 环境变量文件加载顺序 账号和密码——>/etc/profile(全局文件G1)——>/etc
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。...本文链接:https://blog.csdn.net/qq_37933685/article/details/85569192 文章目录 shell入门系列( 一 )环境变量 环境变量 系统内置的变量...查看某个进程的环境变量 通过管道转换不可打印字符 自定义变量导出为环境变量 给已有的环境变量追加 获取变量的字符长度 判断是否是超级用户 vi编辑器的一般设置 bash提示符的变量 shell入门系列...( 一 )环境变量 环境变量 定义:进程可以随意访问的变量 系统内置的变量 $HOME:当前用户主目录 $PWD :当前目录 $USER : 当前用户 $UID : 当前用户id $SHELL : 当前...shell 还有很多内置的变量比如$PATH等等 查看某个进程的环境变量 ps -A 查看所有进程 pgrep 进程名 查看进程名的PID cat /proc/PID/environ 查看PID的所有环境变量
语法 linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。.../bin/bash demoFun(){ echo "这是我的第一个 shell 函数!"...输出类似下面: 这个函数会对输入的两个数字进行相加运算... 输入第一个数字: 1 输入第二个数字: 2 两个数字分别为 1 和 2 ! 输入的两个数字之和为 3 !...函数返回值在调用该函数后通过 $? 来获得。 注意: 所有函数在使用前必须定义。这意味着必须将函数放在脚本开始部分,直至shell解释器首次发现它时,才可以使用。 调用函数仅使用其函数名即可。...函数参数 在Shell中,调用函数时可以向其传递参数。 在函数体内部,通过 n 的形式来获取参数的值,例如,1表示第一个参数, #!
函数的语法 有两种格式可以用来在shell脚本中创建函数,第一种格式采用关键字function,后跟分配给该代码块的函数名 name 属性定义了赋予函数的唯一名称,脚本中定义的每个函数都必须有一个唯一的名称...function www() { echo $[a + b] } www [root@linux /]# sh xxx.sh 10 11 21 变量的作用域 Shell...变量的作用域可以分为三种: 全局变量:在当前shell中任何地方使用的变量 局部变量:只能在函数内使用的变量 环境变量:可以在任何shell中使用的变量 全局变量 任何地方都生效的变量,默认情况下,脚本主体内定义全局变量...b www echo "两个数值相加等于:$xxx" [root@linux /]# sh xxx.sh 输入第一个数值:10 输入第二个数值:11 两个数值相加等于:21 局部变量 shell...中支持自定义函数,与其他语言不同的是,shell中定义的变量默认也是全局变量,在函数外一样可以调用,想要定义局部变量,需要在定义时在变量名前加上local命令,这样定义的变量就是局部变量,函数外就不能访问了
shell脚本中的代码是按照执行的优先级的顺序从上往下抒写的,代码量越大,在脚本调试的时候就越难排错,当因执行需要调整代码执行顺序的时候就需要不断的复制粘贴,或者删除部分代码来完成,这和从写一个脚本花费的时候相比甚至需要更长的时间...一、函数 1.1、函数介绍 shell中允许将一组命令集合或语句形成一段可用代码,这些代码块称为shell函数。给这段代码起个名字称为函数名,后续可以直接调用该段代码的功能。...3.如果没有return命令,函数将返回最后一个Shell的退出值。 1.3、函数调用 当前命令行调用 [root@zutuanxue shell04]# cat fun1.sh #!...]# source fun1.sh [root@zutuanxue shell04]# . fun1.sh [root@zutuanxue shell04]# hello 888 hello zutuanxue...888 MissHou.zutuanxue.cc [root@zutuanxue shell04]# menu 1. mysql 2. web 3. app 4. exit 定义到用户的环境变量中 /
领取专属 10元无门槛券
手把手带您无忧上云