Shell编程是通过编写脚本或命令序列,利用Shell(命令行解释器)与操作系统内核交互,实现自动化任务或系统管理。常见的Shell包括Bash(Bourne-Again Shell)、Zsh、Ksh等,其中Bash是Linux和macOS的默认Shell。

作用:shell本质是一个程序,负责运行用户的程序;提供用户使用操作系统的接口;用来保护操作系统

通过shell来使用 -- 用户程序        // 用户程序 --- 告诉shell要使用操作系统

shell编程本质上是把平时使用的相关命令,按照操作逻辑组合成一个文件,可以实现 批量的命令执行

一.操作流程:

步骤一:①#i/bin/bash    :/bin:表示解释后续命令的shell程序是谁

                                              /bash:就是后续命令的shell程序

                ②vim demo.sh //   .sh表示shell的脚本文件,vim创建一个脚本文件

步骤二:chmod 0777 demo.sh   //添加可执行权限 

                三维权限 :所有者 , 所属组   ,其他人

                                      rwx           rwx           rwx

                        0777:  111            111           111       (1表示允许,0表示不允许)

步骤三: ./demo.sh      //直接运行

二.编程语言  

弱数据类型

1.环境变量---操作系统使用的环境

        现成的环境变量:eg:        env    打印系统全部环境变量

        环境变量名 == 值

        打印输出命令:echo $环境变量名        //$表示引用变量的值

b.位置变量

        int main函数参数:main(int argc, const char *argv[])

        类似于main函数的参数

$#:传入参数的个数,不包含命令本身

$?:上一句shell命令执行的结果        0表示成功

:当前shell的PID−−−
21694  //进程的概念提示

        进程 --- 进行中的程序(process id -- 进程的身份证号)

" "        //如果有$引用变量的操作 --- 会被替换为引用的值

' '         //原样输出,如果有$,如果有$引用变量的操作 --- 不会被替换为引用的值

` `        //反单引号 --- 命令置换        //其中存放的是一个要执行的命令

        eg:     `ls` --- 会被替换为 ls命令执行的结果

c.自定义变量

var=10        //shell中不需要指定类型,只需要变量名,可以直接赋值

注意:自定义变量 书写时,等号左右两边不能有空格

read        //相当于是C语言中scanf,起到输入的作用

        read var  //将值输入到var(所起的变量名)变量中,回车表示结束

        read var1 var2 ...    //可以在一行,给多个变量赋值,不同值之间用空格隔开

                                       //但是最后一个变量,会将剩余值读走

echo  相当于C语言中的printf,起到输出的作用

expr        //计算表达式的命令 --- 运算符左右两侧要有空格(expr 1 + 2)

三,流程控制

test        //条件生成命令

        eg:    if test $a -eq $b        //a和b的值是否相等

也可写成 if [ $a -eq $b ] (中括号左右两边要加空格)

若是按照C语言风格写条件判断表达式,要加两个小括号if ((a == b))

-e    查看文件是否存在

Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐