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

发布于:2022-12-23 ⋅ 阅读:(413) ⋅ 点赞:(0)

 目录

一.Make file 规则格式

 二.什么是shall脚本

三.shell 脚本写法

四.shell 脚本语法

(1)第一个shell 脚本:

(2)交互式shell脚本

 (3)shell 脚本的数值计算

 (4)test 命令

(5)中括号【】判断符

(6)默认变量


一.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 脚本:

编写:

执行:

(2)交互式shell脚本

编写:

 运行:

-a:将分裂后的字段依次存储到指定的数组中,存储的起始位置从数组的index=0开始。
-d:指定读取行的结束符号。默认结束符号为换行符。
-n:限制读取N个字符就自动结束读取,如果没有读满N个字符就按下回车或遇到换行符,则也会结束读取。
-N:严格要求读满N个字符才自动结束读取,即使中途按下了回车或遇到了换行符也不结束。其中换行符或回车算一个字符。
-p:给出提示符。默认不支持"\n"换行,要换行需要特殊处理,见下文示例。例如,"-p 请输入年龄,身高:"
-r:禁止反斜线的转义功能。这意味着"\"会变成文本的一部分。
-s:静默模式。输入的内容不会回显在屏幕上。
-t:给出超时时间,在达到超时时间时,read退出并返回错误。也就是说不会读取任何内容,即使已经输入了一部分。
-u:从给定文件描述符(fd=N)中读取数据。

 

 (3)shell 脚本的数值计算

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

编写:

 运行:

 (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

 运行:

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到