news 2026/10/1 7:06:27

记录嵌入式linux学习第八天

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
记录嵌入式linux学习第八天

1.test命令

test主要是起到了测试作用,用于查看文件是否存在,权限等信息,主要是数值,字符,文件三方面进行测试。

&&和||命令例如:#!/bin/bash

echo "please input file name"

read -p "filename"filename

test -e $filename && echo "file exist" || echo "file no exist"

#!/bin/bash

echo "please input two str"

read -p "frist str"friststr

read -p "second str"secondstr

test $friststr==$secondstr && echo "friststr==secondstr"|| echo "friststr!=seconder"

中括号和[]

可以用来做判断符号,注意符号内部字符串应该加入“”号,要不会报错

默认变量:

$0和$n表示shell脚本参数,shell脚本本身命令为$0

$#表示脚本的最后一个编号,

$@表示$1$2等,表示所有的参数

例子:#!/bin/bash

echo "file name"$0

echo "total param name "$#

echo "whole param "$@

echo "first param"$1

echo "second param"$2

这个脚本可以运行,输入a b时,输出

file namemy.sh

total param name2

whole param a b

first parama

second paramb

2.shell脚本条件判断,函数与循环

条件判断:if条件判断:then

//判断成立要做的事情

fi

代码例子:#!/bin/bash

read -p echo"please input (y/n)"valus

if [ "$valus" == "Y" ]||[ "$valus" == "y" ]; then

echo "your input is y"

exit 0

fi

if[ "$valus" == "N" ]||[ "$valus" == "n" ];then

echo "your input is n"

exit 0

fi

这个脚本就可以进行判断,注意!!!:在这个脚本中用正点原子代码会出现找不到指令的现象,这个现象是因为代码不规范,现在版本的应该注意加入空格,在[]中两边应该有空格,在“==”两边也应该使用空格隔开,在then 前面也应该使用空格隔开,注意我写的代码这个就有空格隔开,注意这一点。

if else的用法:if else 语句的else后面不能跟条件 可以通过修改上面的代码体现出来

#!/bin/bash

read -p echo"please input (y/n)"valus

if [ "$valus" == "Y" ]||[ "$valus" == "y" ]; then

echo "your input is y"

exit 0

else

echo "your input is n"

exit 0

fi

使用else if命令例子如下:

#!/bin/bash

read -p echo"please input (y/n)"valus

if [ "$valus" == "Y" ]||[ "$valus" == "y" ]; then

echo "your input is y"

exit 0

elif [ "$valus" == "N" ]||[ "$valus" == "n" ]; then

echo "your input is n"

exit 0

else

echo "your input can not identfy"

fi

千万要注意空格的使用,在c语言中空格可能没有这么重要,但是在shell脚本命令中空格属于语法的一种

case语句的用法:

case$变量 in

“第一个变量内容”)

程序段

;; //表示该程序段结束

“第二个变量内容”)

程序段

;;

"第n个程序段内容")

程序段

;;

esac

例子:

case $1 in

"a")

echo "param is a"

;;

"b")

echo "param is b"

;;

*)

echo "input can not identify"

;;

esac

注意通配符*不可以加双引号.

3.shell脚本函数

shell脚本函数也支持函数,函数写法如下:function fname(){

//代码段

}

#!/bin/bash

function help(){

echo "this help cmd!"

}

function close(){

echo "this is close help"

}

case $1 in

"h")

help

;;

"c")

close

;;

esac

这个就是代码段

4.shell循环

while 循环 例子:while [ "$valus" == "close" ]

do

read -p "please input str:"valus

done

echo "stop"

for循环 例子:#!/bin/bash

for name in zzk1 zzk2 zzk3

do

echo "your name is $name "

done

\ #!/bin/bash

read -p "please input count :" count

total=0

for((i=0; i<=count; i=i+1))

do

total=$(($total+$i))

done

echo "1+2+...........+$count=$total"

这些就是我的今天全部的笔记,今天我发现遇到的很多问题是因为空格的原因,这种的空格一定要重点排查,明天就国庆啦,放假快乐,我是不会放弃成为嵌入式高手的。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/1 7:06:09

楼宇自控温湿度监测:Modbus TCP/UDP与SNMP融合设计实战

1. 楼宇自控温湿度监测系统的整体设计思路1.1 为什么选Modbus TCP/UDP加SNMP这套组合做过楼宇自控&#xff08;BAS&#xff09;的人都知道&#xff0c;温湿度监测是整个系统里最基础、但也是最容易被低估的一环。基础是因为它无非就是采集传感器数据、上传到上位机、超限报警&a…

作者头像 李华
网站建设 2026/10/1 7:05:36

50年深耕同一件事,西铁城靠什么穿越周期?

过去50年&#xff0c;钟表行业经历了几轮技术变革。石英革命改变了传统钟表业的竞争方式&#xff0c;智能手表则进一步把腕表带入健康、连接和软件功能的竞争。技术不断迭代&#xff0c;企业也在寻找新的增长点。在此过程中&#xff0c;有些企业会长期押注一条技术路线&#xf…

作者头像 李华
网站建设 2026/10/1 7:05:32

以太网温湿度采集的断线重连与断点续传机制解析

先讲一件真事。前年我负责一个药品阴凉库的温湿度监控改造&#xff0c;采集器用的是带以太网口的嵌入式设备&#xff0c;上报频率30秒一次。上线当天一切正常&#xff0c;结果第二天凌晨三点被值班电话吵醒——库房温湿度曲线从零点开始出现一整段空洞。排查到最后&#xff0c;…

作者头像 李华
网站建设 2026/10/1 7:04:40

PLC数据上云实战:网关+MQTT+Node.js构建Web SCADA监控

1. 从车间到浏览器&#xff1a;这套方案到底在解决什么问题车间里一台台达PLC跑了三年&#xff0c;温度PID参数调了无数遍&#xff0c;操作工还是得站在电柜前面盯着触摸屏。老板想在中控室的大屏上看实时数据&#xff0c;还想用手机查历史曲线&#xff0c;更想在下班后收到微信…

作者头像 李华