一、什么是 shell 脚本

        可以将很多命令放在一个文件里面,然后直接运行这个文件即可。

        shell 脚本类似 Windows 的批量处理文件,shell 脚本就是连续执行的命令写成一个文件。

        shell 脚本提供数组、循环、条件判断的功能。shell 脚本一般是 Linux 运维或者系统管理员要掌握的,而嵌入式开发,只要掌握 shell 最基本的部分即可。

https://blog.csdn.net/qq_64219867/article/details/150614983

二、shell 脚本写法

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

#!/bin/bash

表示 bash 。

三、 shell 脚本语法

①第一个 shell 脚本
vim my.sh

#!/bin/bash
echo "hello world!"    //echo :表示在终端中输出显示

chmod 777 my.sh    //改变其权限

./my.sh        //运行
②交互式 shell 脚本(有输入有输出)
vim my.sh

#!/bin/bash
echo "Please input name:"
read name    //将读到的内容复制到 name 这个变量
echo "your name:" $name    //将 name 这个变量的值输出到终端中

./my.sh
③ shell 脚本的数值计算

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

④ test 命令

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

&& 和 || 命令:

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

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

⑤中括号 [] 判断符

只能在 [] 里面输入 == 或者 !=

记得 [] 里面无论是字符串还是数字都记得加 “”

⑥默认变量

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

$#: # 表示返回所有脚本参数的个数。

$@:表 $1、 $2、$3 ......

四、条件判断

        shell 脚本支持条件判断,虽然可以通过 && 和 || 来实现简单的条件判断,但是稍微复杂一点的场合就不适应了。 shell 脚本提供了 if then 条件判断语句,写法三种:

①
if [条件判断]: then
    //判断成立要做的事情
fi

②
if 条件判断 : then
    //条件判断成立要做的事情
else
    //条件判断不成立要做的事情
fi

③
if 条件判断 : then
    //条件判断成立要做的事情
elif [条件判断]: then
    //条件判断成立要做的事情
else
    //条件判断不成立要做的事情
fi

④ case 语句 (与 c 语言的 switch case 相同)
case $变量 in
    "第 1 个变量内容")
        程序段
        ;; //表示该程序快结束!!
    "第 2 个变量内容")
        程序段
        ;;
    "第 n 个变量内容")
        程序段
        ;;
esac

五、函数

        shell 脚本也支持函数,函数写法如下:

function fname() {
    // 函数代码段
}

六、循环

        shell 支持循环 

while do done 表示当条件成立的时候一直循环,直到条件不成立。

while [条件]    //中括号内的状态是判断式
do        //循环开始
    //循环代码段
done

until do done 表示当条件不成立的时候一直循环,条件成立以后就不循环了。

while [条件]
until do
    //循环代码段
done

for 循环,使用 for循环可以知道循环次数。

var就是变量, con1就是值。

for var in con1 con2 con3 ......
do
    // 循环代码段
done

for 循环数值处理,写法

for((初始值; 限制值; 执行步长))
do
    //循环代码段
done

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐