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

相关文章
|
16天前
|
Web App开发 Java Linux
Linux之Shell基本命令篇
Linux之Shell基本命令篇
Linux之Shell基本命令篇
|
1天前
|
Linux 开发工具 C语言
【linux基础(七)】Linux中的开发工具(下)--make/makefile和git
【linux基础(七)】Linux中的开发工具(下)--make/makefile和git
|
2天前
|
Linux Shell Android开发
自动化脚本之GPIO/LED相关适用于Android/Linux
自动化脚本之GPIO/LED相关适用于Android/Linux
13 0
|
14天前
|
存储 Shell Linux
【攻防世界】unseping (反序列化与Linux bash shell)
【攻防世界】unseping (反序列化与Linux bash shell)
|
15天前
|
Shell 应用服务中间件 开发工具
shell 学习(二) shell语法【特殊字符、转义字符、shell 字体颜色和字体背景】
shell 学习(二) shell语法【特殊字符、转义字符、shell 字体颜色和字体背景】
11 0
|
17天前
|
Shell Linux
【Linux】12. 模拟实现shell
【Linux】12. 模拟实现shell
27 2
|
22天前
|
Ubuntu Unix Linux
【Linux/Ubuntu】Linux/Ubuntu运行python脚本
【Linux/Ubuntu】Linux/Ubuntu运行python脚本
|
23天前
|
Shell Linux
Linux的shell入门教程shell脚本入门教程
Linux的shell入门教程shell脚本入门教程
15 0
|
10月前
|
监控 Linux
linux服务器显卡监控脚本
linux服务器显卡监控脚本
100 0
|
监控 Shell Linux
Linux 性能监控之CPU&内存&I/O监控Shell脚本1
Linux 性能监控之CPU&内存&I/O监控Shell脚本1
138 0