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

相关文章
|
2月前
|
存储 安全 Unix
七、Linux Shell 与脚本基础
别再一遍遍地敲重复的命令了,把它们写进Shell脚本,就能一键搞定。脚本本质上就是个存着一堆命令的文本文件,但要让它“活”起来,有几个关键点:文件开头最好用#!/usr/bin/env bash来指定解释器,并用chmod +x给它执行权限。执行时也有讲究:./script.sh是在一个新“房间”(子Shell)里跑,不影响你;而source script.sh是在当前“房间”里跑,适合用来加载环境变量和配置文件。
414 9
|
2月前
|
存储 Shell Linux
八、Linux Shell 脚本:变量与字符串
Shell脚本里的变量就像一个个贴着标签的“箱子”。装东西(赋值)时,=两边千万不能有空格。用单引号''装进去的东西会原封不动,用双引号""则会让里面的$变量先“变身”再装箱。默认箱子只能在当前“房间”(Shell进程)用,想让隔壁房间(子进程)也能看到,就得给箱子盖个export的“出口”戳。此外,Shell还自带了$?(上条命令的成绩单)和$1(别人递进来的第一个包裹)等许多特殊箱子,非常有用。
302 2
|
5月前
|
Shell
Shell脚本循环控制:shift、continue、break、exit指令
使用这些命令可以让你的Shell脚本像有生命一样动起来。正确使用它们,你的脚本就能像一场精心编排的舞蹈剧目,既有旋律的起伏,也有节奏的跳跃,最终以一场惊艳的表演结束。每一个动作、每一个转折点,都准确、优雅地完成所需要表达的逻辑。如此,你的脚本不只是冰冷的代码,它透过终端的界面,跳着有节奏的舞蹈,走进观众——使用者的心中。
264 60
|
2月前
|
数据采集 监控 Shell
无需Python:Shell脚本如何成为你的自动化爬虫引擎?
Shell脚本利用curl/wget发起请求,结合文本处理工具构建轻量级爬虫,支持并行加速、定时任务、增量抓取及分布式部署。通过随机UA、异常重试等优化提升稳定性,适用于日志监控、价格追踪等场景。相比Python,具备启动快、资源占用低的优势,适合嵌入式或老旧服务器环境,复杂任务可结合Python实现混合编程。
|
4月前
|
Web App开发 缓存 安全
Linux一键清理系统垃圾:释放30GB空间的Shell脚本实战​
这篇博客介绍了一个实用的Linux系统盘清理脚本,主要功能包括: 安全权限检查和旧内核清理,保留当前使用内核 7天以上日志文件清理和系统日志压缩 浏览器缓存(Chrome/Firefox)、APT缓存、临时文件清理 智能清理Snap旧版本和Docker无用数据 提供磁盘空间使用前后对比和大文件查找功能 脚本采用交互式设计确保安全性,适合定期维护开发环境、服务器和个人电脑。文章详细解析了脚本的关键功能代码,并给出了使用建议。完整脚本已开源,用户可根据需求自定义调整清理策略。
538 1
|
5月前
|
Ubuntu Linux UED
Ubuntu和Debian系统与Hat Linux系列的使用比较
所以,如果你想搞一个家用服务器,或者是个人使用,喜欢新鲜事物,那Ubuntu可能是你的最好选择。如果你需要一个在商业环境中经受住考验的系统,那Fedora或CentOS可能更符合你的口味。不过记住,CentOS现在是CentOS Stream,中途换马了,所以如果你是稳定性的极端追求者,可能得考虑一下这一变化。而Debian,则适合那些对稳定性需求极高,不太追求软件版本新旧的用户。
188 26
|
5月前
|
Ubuntu 搜索推荐 Linux
Ubuntu/Debian Hat系Linux的便捷操作指南
总的来说,虽然Ubuntu/Debian和Red Hat系列在操作方法上有所不同,但基本概念类似。掌握了包管理和服务管理,可以应对大多数常见的系统管理任务。同时,这两个系统都有丰富的在线资源可以查询,不管你在任务中遇到什么困难,搜索引擎都能帮你找到答案。这些基本技能能让你在Linux的世界里更加自如。
181 26
|
5月前
|
Ubuntu Linux Shell
Linux环境下VSCode快速安装终极指南:debian/ubuntu/linux平台通用
以上就是在Linux环境下安装VSCode的终极指南,抛开繁复的专业词汇,以平易近人的文字、形象生动的比喻让你轻松学会这一过程。别忘了,你的小伙伴VSCode已经在应用菜单里等你了!
1496 23
|
6月前
|
存储 Unix Shell
确定Shell脚本在操作系统中的具体位置方法。
这对于掌握Linux的文件系统组织结构和路径方面的理解很有帮助,是我们日常工作和学习中都可能使用到的知识。以上讲解详细清晰,应用简便,是每一个想要精通操作系统的计算机爱好者必备的实用技能。
179 17
|
6月前
|
Linux Shell
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
195 4