shell test和find命令实例解析
shell test和find命令实例解析
下面以\build\core\product.mk相关部分来学习
define _find-android-products-files
$(shell test -ddevice && find device -maxdepth 6 -name AndroidProducts.mk) \
$(shell test -d vendor && find vendor -maxdepth 6 -nameAndroidProducts.mk) \
$(SRC_TARGET_DIR)/product/AndroidProducts.mk
Endef
Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试,这方面参考http://www.runoob.com/linux/linux-shell-test.html
上面例子同时也用到了find命令
test -d device&& find device -maxdepth 6 -name AndroidProducts.mk
test -d device表示如果device存在且为目录则为真,则会执行find命令find命令在device目录下,最大深入6层子目录来查找名字为AndroidProducts.mk的文件
对于find命令,在-之前的字符串表示path(目录,这里是device),之后是expression(表达式,这里是-maxdepth 6 -name AndroidProducts.mk),
-maxdepth 6 设定递归搜索的目录层级,1为在当前目录下,即不递归搜索。
-name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写
find命令找到AndroidProducts.mk后将查找到的子目录和文件全部进行显示,这就是find命令的输出,比如我在device下find的结果
图1
这里shell是函数,它的参数是操作系统Shell的命令,比如test,shell函数把执行命令后的输出作为函数返回,上面命令包的作用是在device、vendor目录下查AndroidProducts.mk,把device、vendor和(SRC_TARGET_DIR)/product/AndroidProducts.mk所在子目录和文件全部进行显示
命令包_find-android-products-files的值是AndroidProducts.mk文件列表,见上图
shell test和find命令实例解析的更多相关文章
- Linux sed命令实例解析
最近看project的makefile,又见到了sed的强大编辑能力,在makefile工作之前,通常都是执行脚本或者make menuconfig来配置好各种全局变量.sed活动阶段通常在bash ...
- Linux Shell : Test命令参数解析
格式: test conditions test -n string : string 不为空 test -z string : string 为空 test int1 -eq int2 : int ...
- Linux系统SCSI磁盘扫描机制解析及命令实例(转)
转载请在文首保留原文出处:EMC中文支持论坛 介绍 Linux系统扫描SCSI磁盘有几种方式?Linux新增LUN之后,能否不重启主机就认出设备?如果安装了PowerPath,动态添加/删除LUN的命 ...
- Linux系统SCSI磁盘扫描机制解析及命令实例
介绍Linux系统扫描SCSI磁盘有几种方式?Linux新增LUN之后,能否不重启主机就认出设备?如果安装了PowerPath,动态添加/删除LUN的命令是什么?本文总结了Linux主机对磁盘设备进行 ...
- Linux中的15个‘echo’ 命令实例
echo是一种最常用的与广泛使用的内置于Linux的bash和C shell的命令,通常用在脚本语言和批处理文件中来在标准输出或者文件中显示一行文本或者字符串. echo命令的语法是: echo [选 ...
- chroot 命令实例讲解
我是一个刚接触 Linux 和 Unix 的新手.我该如何改变一个命令的根目录?我要怎样改变一个进程的根目录呢,比如用 chroot 命令将web服务与文件系统隔离?我要如何使用 chroot 恢复密 ...
- 15个Linux Yum命令实例--安装/卸载/更新
在linux环境中, 安装, 卸载更新包是一个极为常见的操作.大部分的linux环境都提供了包的管理工具, 例如:apt-get, dpkg, rpm, yum等等. 一些Linux环境中,yum是默 ...
- Noah的学习笔记之Python篇:命令行解析
Noah的学习笔记之Python篇: 1.装饰器 2.函数“可变长参数” 3.命令行解析 注:本文全原创,作者:Noah Zhang (http://www.cnblogs.com/noahzn/) ...
- python实现命令行解析的argparse的使用
参考https://docs.python.org/3.6/library/argparse.html argparse模块使编写用户友好的命令行界面变得很容易.程序定义了它需要什么参数,argpar ...
随机推荐
- mv&cp
mv [选项] [源] [目标] 当目标不存在时,重命名源为目标 当目标存在时,若目标为目录文件,将源移动到目标文件里: 若目标为非目录文件,将源重命名为目标,并强制覆盖目标. mv -b 1 2 ...
- [Codeforces 606C]Sorting Railway Cars
Description An infinitely long railway has a train consisting of n cars, numbered from 1 to n (the n ...
- codeforces 815C Karen and Supermarket
On the way home, Karen decided to stop by the supermarket to buy some groceries. She needs to buy a ...
- [BZOJ1977]严格次小生成树
[问题描述] 小C最近学了很多最小生成树的算法,Prim算法.Kurskal算法.消圈算法等等. 正当小C洋洋得意之时,小P又来泼小C冷水了.小P说,让小C求出一个无向图的次小生成树,而且这个次小生成 ...
- ●UOJ 34 多项式乘法
题链: http://uoj.ac/problem/34 题解: FFT入门题. (终于接触到迷一样的FFT了) 初学者在对复数和单位根有简单了解的基础上,可以直接看<再探快速傅里叶变换> ...
- VK Cup 2017 - Квалификация 2
因为资格赛1已经通过了,资格赛2随便打打玩.这次题目比上次还简单,FallDream看了两眼觉得太水就不做了,我一个人闲着无聊只好默默做了 A. Новый пароль 题目大意:给出N和K,要求构 ...
- ●BZOJ 4559 [JLoi2016]成绩比较(容斥)
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=4559 题解: 容斥,拉格朗日插值法. 结合网上的另一种方法,以及插值法,可以把本题做到 O( ...
- hdu 5463(水水)
Sample Input 2 3 2 33 3 33 2 33 10 5 467 6 378 7 309 8 499 5 320 3 480 2 444 8 391 5 333 100 499 S ...
- hdu5652 India and China Origins(并查集)
India and China Origins Accepts: 49 Submissions: 426 Time Limit: 2000/2000 MS (Java/Others) Memo ...
- 例10-3 uva10375(唯一分解定理)
题意:已知C(m,n) = m!/(n!(m-n)!),已知p,q,r,s,求C(p,q)/C(r,s) 思路: 全部分解成质因子,相乘则加,除则减 #include <iostream> ...