Linux (Ubuntu) Make file 基本语法和shell脚本基础(入门必看)

简介: Linux (Ubuntu) Make file 基本语法和shell脚本基础(入门必看)

一.Make file 规则格式


Make file 里面是由一系列规则组成的,例如


目标···...:依赖文件集合......


       命令1


       命令2


       ......


例如:


main:main.o  input.o  calcu.o


       gcc  -o  main  main.o   input.o  calcu.o


二.什么是shall脚本


       shall脚本类似windows 的批处理文件,shall脚本就是将连续的命令写成一个文件,shall脚本提供数组,循环,条件判断等功能,shall脚本一般Linux运维或者系统管理员要掌握,作为嵌入式开发人员,只需要掌握shall最基础的部分即可。


三.shell 脚本写法


       shall脚本是一种纯文本文件,命令从上而下,一行一行的开始执行,shell脚本扩展名为.sh shell脚本第一行一定要为:


#!/bin/bash


表示使用 bash


四.shell 脚本语法


(1)第一个shell 脚本:

编写:

b436ad67156a4957a59f087fa86dc0d7.png

执行:


f2bf1a7a66e64b94a9cf8c77bae99295.png


(2)交互式shell脚本

编写:


4f9bf17e0b2a48549f3ca170344cdf33.png


运行:


763fff401ece486790f3f6ad4085d3dd.png


-a:将分裂后的字段依次存储到指定的数组中,存储的起始位置从数组的index=0开始。

-d:指定读取行的结束符号。默认结束符号为换行符。

-n:限制读取N个字符就自动结束读取,如果没有读满N个字符就按下回车或遇到换行符,则也会结束读取。

-N:严格要求读满N个字符才自动结束读取,即使中途按下了回车或遇到了换行符也不结束。其中换行符或回车算一个字符。

-p:给出提示符。默认不支持"\n"换行,要换行需要特殊处理,见下文示例。例如,"-p 请输入年龄,身高:"

-r:禁止反斜线的转义功能。这意味着"\"会变成文本的一部分。

-s:静默模式。输入的内容不会回显在屏幕上。

-t:给出超时时间,在达到超时时间时,read退出并返回错误。也就是说不会读取任何内容,即使已经输入了一部分。

-u:从给定文件描述符(fd=N)中读取数据。


d2113d4fda0d49b68675d5d0b1233f03.png

7ff74adf71e04e37829f585ded80434b.png


(3)shell 脚本的数值计算

       shell 仅支持整型,数值计算使用 $((表达式))


编写:


46301c4e35a248d29b8d7296e3752fd9.png


运行:


232ffed9cc584c7bb2ed802ae0c76b7f.png


(4)test 命令

            test命令用于查看文件是否存在,权限等信息,可以进行数值,字符,文件三方面的测试


&&和||命令:


cmd1 && cmd2   当cmd1执行完毕且正确,那么cmd2开始执行,如果cmd1执行错误聪cmd2不执行


cmd1||cmd2 当cmd1执行完毕且正确,那么cmd2不执行,反之cmd2执行


数值测试:


-eq 等于则为真

-ne 不等于则为真

-gt 大于则为真

-ge 大于等于则为真

-lt 小于则为真

-le 小于等于则为真

num1=100 num2=100
if test $[num1] -eq $[num2]
then
        echo 'The two numbers are equal!'
else
         echo 'The two numbers are not equal!'
fi

输出:

The two numbers are equal!

数值测试 字符串测试 文件测试 内容过多 点击链接了解详细  

(5)中括号【】判断符

       【】与test 相似    【】中只能输入== 或者!=

例如

["$firststr" == "$secondstr"] && echo"firststr == secondstr" || echo "firststtr !=secondstr"

(6)默认变量

$0~$n,表示shell脚本的参数,包括shell脚本命令本身,shell脚本命令本身为$

$#: #表示最后一个参数符号

$@: 表示$1,$2,$3......

#!/bin/bash
echon "file name:" $0        //shell 脚本名字
echo "total param num:" $#     //有多少个参数 
echo "whole param" $@         //整个参数的内容
echo "first param:" $1        
echo "second param:" $2

运行:

dbf38da6907d427ba989174d7b9a0a2b.png

相关文章
|
5月前
|
监控 Ubuntu Linux
在Ubuntu环境中制定脚本开机自动启动设置
以上就是在Ubuntu环境下制定脚本开机自动启动的设置方法。通过Systemd服务,你可以按需要轻松管理脚本的自动执行。全新的一天开始时,脚本已静静地运行,无需额外手动启动,机器恰如一位忠诚的仲夏夜的梦想者,在黎明的许诺中尽职尽责。于是心满意足地看着,任由它在自己选择的轨道上静静地飞翔。
498 26
|
4月前
|
Linux C语言 网络架构
Linux的基础IO内容补充-FILE
而当我们将运行结果重定向到log.txt文件时,数据的刷新策略就变为了全缓冲,此时我们使用printf和fwrite函数打印的数据都打印到了C语言自带的缓冲区当中,之后当我们使用fork函数创建子进程时,由于进程间具有独立性,而之后当父进程或是子进程对要刷新缓冲区内容时,本质就是对父子进程共享的数据进行了修改,此时就需要对数据进行写时拷贝,至此缓冲区当中的数据就变成了两份,一份父进程的,一份子进程的,所以重定向到log.txt文件当中printf和fwrite函数打印的数据就有两份。此时我们就可以知道,
69 0
|
4月前
|
NoSQL Linux 开发工具
Linux环境基础开发工具的使用(yum、vim、gcc、g++、gdb、make/Makefile)
本文介绍了yum 包管理工具、Vim 编辑器、gcc/g++ 编译器、gdb 调试器、编译原理及 Makefile 的使用,同时还配备了如何使用,以及图解。旨在帮助读者更好地理解和应用这些工具与技术。
198 0
|
8月前
|
Unix Linux Shell
Linux新手入门手册
在Linux或类Unix系统中,掌握一系列基础命令和快捷键是提升工作效率的关键。这些工具和技巧不仅能帮助用户更高效地管理系统,还能在日常使用中带来极大的便利。以下是对这些基础操作与快捷键的详细解析大全。
133 9
|
10月前
|
Linux Android开发 开发者
linux m、mm、mmm函数和make的区别
通过理解和合理使用这些命令,可以更高效地进行项目构建和管理,特别是在复杂的 Android 开发环境中。
441 18
|
11月前
|
Ubuntu Shell 开发工具
ubuntu/debian shell 脚本自动配置 gitea git 仓库
这是一个自动配置 Gitea Git 仓库的 Shell 脚本,支持 Ubuntu 20+ 和 Debian 12+ 系统。脚本会创建必要的目录、下载并安装 Gitea,创建 Gitea 用户和服务,确保 Gitea 在系统启动时自动运行。用户可以选择从官方或小绿叶技术博客下载安装包。
405 2
|
11月前
|
Unix Linux Shell
linux入门!
本文档介绍了Linux系统入门的基础知识,包括操作系统概述、CentOS系统的安装与远程连接、文件操作、目录结构、用户和用户组管理、权限管理、Shell基础、输入输出、压缩打包、文件传输、软件安装、文件查找、进程管理、定时任务和服务管理等内容。重点讲解了常见的命令和操作技巧,帮助初学者快速掌握Linux系统的基本使用方法。
625 3
|
12月前
|
Linux Go 数据安全/隐私保护
Linux入门2——初识Linux权限
Linux入门2——初识Linux权限
122 2
|
12月前
|
机器学习/深度学习 Linux 编译器
Linux入门3——vim的简单使用
Linux入门3——vim的简单使用
145 1
|
12月前
|
Linux Shell Windows
Linux入门1——初识Linux指令
Linux入门1——初识Linux指令
139 0
Linux入门1——初识Linux指令