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

相关文章
|
3天前
|
Shell Linux
【linux】Shell脚本中basename和dirname的详细用法教程
本文详细介绍了Linux Shell脚本中 `basename`和 `dirname`命令的用法,包括去除路径信息、去除后缀、批量处理文件名和路径等。同时,通过文件备份和日志文件分离的实践应用,展示了这两个命令在实际脚本中的应用场景。希望本文能帮助您更好地理解和应用 `basename`和 `dirname`命令,提高Shell脚本编写的效率和灵活性。
54 32
|
3月前
|
存储 Shell Linux
Linux 如何更改默认 Shell
Linux 如何更改默认 Shell
81 0
Linux 如何更改默认 Shell
|
4月前
|
Web App开发 网络协议 Linux
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
这篇文章是关于Linux命令的总结,涵盖了从基础操作到网络配置等多个方面的命令及其使用方法。
106 1
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
|
3月前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
Linux
Linux file 命令详解
哈哈,其实我不是要讲解file命令啦!只是介绍一个小小的技巧,就是如何用file命令查看当前的操作系统位数。 file /bin/任意外部命令 如:file /bin/ls
1417 0
|
6天前
|
Linux
Linux系统之whereis命令的基本使用
Linux系统之whereis命令的基本使用
50 23
Linux系统之whereis命令的基本使用
|
3月前
|
Linux 网络安全 数据安全/隐私保护
Linux 超级强大的十六进制 dump 工具:XXD 命令,我教你应该如何使用!
在 Linux 系统中,xxd 命令是一个强大的十六进制 dump 工具,可以将文件或数据以十六进制和 ASCII 字符形式显示,帮助用户深入了解和分析数据。本文详细介绍了 xxd 命令的基本用法、高级功能及实际应用案例,包括查看文件内容、指定输出格式、写入文件、数据比较、数据提取、数据转换和数据加密解密等。通过掌握这些技巧,用户可以更高效地处理各种数据问题。
344 8
|
3月前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
1128 6
|
20天前
|
网络协议 Unix Linux
深入解析:Linux网络配置工具ifconfig与ip命令的全面对比
虽然 `ifconfig`作为一个经典的网络配置工具,简单易用,但其功能已经不能满足现代网络配置的需求。相比之下,`ip`命令不仅功能全面,而且提供了一致且简洁的语法,适用于各种网络配置场景。因此,在实际使用中,推荐逐步过渡到 `ip`命令,以更好地适应现代网络管理需求。
33 11