嵌入式解谜日志之shell编程
var=10//shell中不需要指定类型,只需要变量名,可以直接赋值注意:自定义变量 书写时,等号左右两边不能有空格read//相当于是C语言中scanf,起到输入的作用read var//将值输入到var(所起的变量名)变量中,回车表示结束read var1 var2 ...//可以在一行,给多个变量赋值,不同值之间用空格隔开//但是最后一个变量,会将剩余值读走echo相当于C语言中的prin
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 查看文件是否存在

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

所有评论(0)