前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >shell命令和makefile简单使用方法

shell命令和makefile简单使用方法

原创
作者头像
用户8282247
发布2023-06-08 16:57:10
5260
发布2023-06-08 16:57:10
举报

特别是在linux中,终端命令行进行操作文件。其中shell和makefile是linux进阶版,对于后期学习uboot和linux内核打下基础。

shell

简单理解为:多个命令行任务放在一个文件中一起执行(xxx.sh)

运行方式为:source xxx.sh

读写方式为:vim xxx.sh(目前也支持notepad软件)

基本执行语句:

1.操作文件

常用命令

代码语言:javascript
复制
rm a.c       //删除文件
mkdir a    //创建文件夹
touch a.c    //创建文件
vim a.c      //打开文件

2.变量赋值

常用命令

代码语言:javascript
复制
// 在shell和makefile中变量可以认为是字符串类型
string=123  //赋值没有空格!!!
echo "string"     // 结果为string
echo "$string"     // 结果为123
echo "$stringabc"     // 结果为空
echo "$[string]abc"     // 结果为123abc

// $string 代表引用变量,没有加则认为字符串

3.判断语句

常用命令

代码语言:javascript
复制
if [表达式];then		
xxx
else
xxx
fi
//表达式中: [ -f a.c ]	判断a.c是否存在(注意空格必须要)
// [ -d ]目录是否存在		[ "aaa" = "bbb" ]字符串是否相等(只有一个等号)
//数字比较(-eq)相等,(-le)小于等于,(-ge)大于等于,(-lt)小于less than,(-gt)大于great than
//判断字符串是否为空(-z $str)或( $srt = "" )---没定义不是空
//(-o)逻辑或;

4.循环语句

代码语言:javascript
复制
for i in 1 2 3 4
do
    echo $i
done

// while循环
while [ xxx ];do
        xxxx
    done 

5.case语句

代码语言:javascript
复制
// case语句(case语句在shell中没有break,是自动跳出的)
i=2
case $i in
1) echo "1" ;;
2) echo "2" ;;
esac

//打印结果为2

makefile

1.文件创建 touch makefile

2.运行 make

makefile在执行时,会先打印命令再运行命令(不需要时,在命令前加@echo pwd---静默执行)

赋值

var="xxx" //用=号时,在使用该变量时是最后一次赋值的结果(如)

:= // 与等号相同,使用该变量时看前面

代码语言:javascript
复制
A=ab
B=$(A)cd
C:=$(A)cd
A=ef
echo B	//efcd
echo C	//abcd

?= //变量没有赋值,则执行该条赋值语句

+= //在变量后面再蓄接(在shell和makefile中变量大多是字符串)

设置环境变量

设置环境变量(用于工程中别的makefile文件使用)

export A //一般大写表示,可以使用make A=gcc进行传参(可以覆盖文件中的参数,最高优先级)

通配符

代码语言:javascript
复制
1.*.c(所有.c文件)
2.?.c(只有一个字符的.c文件)
3.[1234].c(分别将1,2,3,4.c进行匹配)

自动变量

自动变量

$@ 规则的目标文件名

$< 规则的依赖文件名

$^ 依赖的文件集合

如:

代码语言:javascript
复制
all : 1.c 2.c 1.h
    echo $@		//输出all
    echo $<		//输出1.c
    echo $^		//输出1.c 2.c 1.h

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • shell
    • 1.操作文件
      • 2.变量赋值
        • 3.判断语句
          • 4.循环语句
            • 5.case语句
            • makefile
              • 赋值
                • 设置环境变量
                  • 通配符
                    • 自动变量
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档