0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux开发_Shell脚本编程语言

DS小龙哥-嵌入式技术 2022-09-17 15:39 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

【摘要】 介绍Linux下Shell编程,介绍shell里语句、变量、函数、运算符的使用。

任务1:Shell脚本语言

Linux下常用的脚本语言。

变量、数组、for、while、函数、运算符、if、……..

[root@wbyq /]# ls /bin/sh -l

lrwxrwxrwx. 1 root root 4 12月 27 2016 /bin/sh -> bash

​变量定义使用

#!/bin/bash

ABC=12345

echo "ABC=$ABC"

echo "ABC=${ABC}"

​Shell脚本传递参数 类似于C语言的argv argc

#!/bin/bash

echo "cnt=$#"

echo "[0]=$0"

echo "[1]=$1"

echo "[2]=$2"

echo "[3]=$3"

​if语句语法规则

#!/bin/bash

a=10

b=20

if [ ${a} -eq ${b} ] #判断两个数是否相等,也可以使用 ==

then

echo "123"

else

echo "456"

fi

#!/bin/bash

if [ 100 == 120 -o 50 != 40 ] && [ 100 == 200 ]

then

echo "条件为真"

else

echo "条件为假"

fi

#一个[]表示一个完整的表达式

#-a表示与 -o表示或 只能用于单个表达式之内

#多个表达式之间可以使用&&和 || 嵌套连接

#!/bin/bash

#嵌套if语句示例

if [ 100 == 120 -o 50 != 40 ] && [ 100 == 200 ]

then

if [ 100 == 120 -o 50 != 40 ] && [ 100 == 200 ]

then

echo "条件为真"

else

echo "条件为假"

fi

else

if [ 100 == 120 -o 50 != 40 ] && [ 100 == 200 ]

then

echo "条件为真"

else

echo "条件为假"

fi

fi

​计算字符串长度

#!/bin/bash

string="abcd"

echo ${#string} #输出 4

​数组语法

#!/bin/bash

buff=(1 2 3 4 5 6 7 8 9)

buff[0]=88

buff[1]=99

buff[100]=100

buff[88]=55

echo "buff[0]=${buff[0]}"

echo "buff[1]=${buff[1]}"

echo "buff[2]=${buff[2]}"

echo "buff[100]=${buff[100]}"

​echo用法示例

#!/bin/bash

DATA=12345

echo "DATA=${DATA}"

​printf语句格式

#!/bin/bash

printf "%d\n" 1234

printf "%s\n" "45678"

​从键盘上读取数据

#!/bin/bash

echo -n "输入数据:" #参数-n 的作用是不换行, echo 默认是换行

read data #从键盘输入

echo "你输入的数据为: $data" #显示信息

​Case多分支选择语句

#!/bin/bash

echo "输入一个 1 到 4 之间的数字"

read aNum

case ${aNum} in

1) echo "你选择 1"

;;

2) echo "你选择 2"

;;

3) echo "你选择 3"

;;

4) echo "你选择 4"

;;

5) echo "你选择 4"

;;

*) echo "你不选择一个数字不在 1 到 4 之间"

;;

esac

​for循环

(1)基本用法

#!/bin/bash

for loop in 1 2 3 4 5 6 7 8 9

do

echo "loop=${loop}"

done

(2) 嵌套示例

#!/bin/bash

for loop in 1 2 3

do

for loop in 1 2 3

do

echo "loop=${loop}"

done

done

(3)输出位置路径

#!/bin/bash

for loop in /test/*.sh

do

echo "file_name=${loop}"

done

​break关键字

#!/bin/bash

for loop in 1 2 3

do

for loop in 1 2 3

do

echo "loop=${loop}"

break 2 #break后面可以加参数,选择跳出的循环层次

done

done

​while循环示例

(1)示例1

#!/bin/bash

while : #无限循环条件

do

sleep 1 #休眠1秒钟

echo "123"

break 1 #跳出指定层次的循环

done

(2)示例2

#!/bin/bash

COUNTER=0

while [ ${COUNTER} -lt 5 ]

do

COUNTER=`expr ${COUNTER} + 1`

echo "COUNTER=${COUNTER}"

done

COUNTER=0

while [ ${COUNTER} != 5 ]

do

COUNTER=`expr ${COUNTER} + 1`

echo "COUNTER=${COUNTER}"

done

(2)示例3

#!/bin/bash

while read DATA

do

echo "DATA=${DATA}"

done

(3)示例4

#!/bin/bash

while read DATA

do

echo "DATA=${DATA}"

continue #跳出当前这一次循环

echo "1234556"

done

​函数

(1)​基本示例

#!/bin/bash

#函数的编写格式

func()

{

echo "函数调用调用成功!"

}

func #调用函数不需要加()

(2)​嵌套调用

#!/bin/bash

#函数的编写格式

func1()

{

func2

}

func2()

{

echo "函数调用调用成功!"

}

func1 #调用函数不需要加()

(3)​函数的返回值

#!/bin/bash

#函数的编写格式

func()

{

return 255 #最大范围是255

}

func #调用函数不需要加

echo $?

(4)​函数的形参

#!/bin/bash

#函数的编写格式

func()

{

echo "$1"

echo "$2"

echo "$3"

echo "$4"

return 255 #函数返回值只能是整数,最好不要返回路径。

}

func 123 456 789 dfvbfdjvbgdf

echo $?

​调用外部脚本

#!/bin/bash

. 123.sh

source 123.sh

echo "a=${a}"

echo "b=${b}"

echo "c=${c}"

​Shell脚本练习

1.​从键盘上输入年份,判断平年闰年。

#!/bin/bash
echo -n "请输入年份:"  # -n 不换行
read year   #从键盘上读取年份

#能被400整除 ,能被4整除不能被100整除
if [ `expr $year % 400` == 0 ] || [ `expr $year % 4` == 0 -a `expr $year % 100` != 0 ]
then
	echo "$year是闰年"
else
	echo "$year是平年"
fi

2.​输出9*9乘法口诀表。

3.​冒泡排序。

4.​使用函数封装判断平年闰年

5.​输出所有水仙花数(个位+十位+百位的立方和=本身)例如: 1*1*1+2*2*2+3*3*3=123

6.​判断100~200之间所有的素数

7. 写一个脚本

(1). 切换工作目录至指定目录

(2). 依次向指定目录中的每个文件或子目录问好,形如:

(提示:for FILE in /var/*;或for FILE in `ls /var`;)

Hello,log

(3).统计/var目录下共有多个文件,并显示出来

8. 写一个脚本, 通过ping命令测试192.168.x.0到192.168.x.254之间的所有主机是否在线

如果在线,就显示“在线”

如果不在线,就显示“离线”

注意:ping -c1 -w1 中-c1是指ping的次数,-w是指执行的最后期限,也就是执行的时间,单位为秒

9. 模拟linnux登录shell

就是输入用户名密码判断是否正确。

10. 查找指定目录下最大的文件,然后输出

11. 将指定目录下的所有指定后缀文件,按照统一的方式命名。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    88

    文章

    11628

    浏览量

    217981
  • 编程语言
    +关注

    关注

    10

    文章

    1959

    浏览量

    38915
  • Shell脚本
    +关注

    关注

    0

    文章

    36

    浏览量

    8451
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Linux驱动开发的必备知识

    内核基础知识: 1、熟悉 Linux 内核的架构、模块系统、进程管理、内存管理等。 了解内核的编译和加载过程。 2、C编程技能: 精通 C 语言编程,包括指针操作、内存管理、结
    发表于 12-04 07:58

    Linux 编程语言盘点:从内核到AI的全栈选择

    在工控圈和嵌入式圈里,有一个常年被讨论的问题:  “在 Linux 上,到底该用什么语言编程?” 有人坚信:C 才是真正的工业语言。有人反驳:Python 才是效率王者。还有人推崇 G
    的头像 发表于 11-06 17:05 431次阅读

    【EASY EAI Nano-TB(RV1126B)开发板试用】命令行功能测试-shell脚本进行IO控制-红绿灯项目-实现开机起动

    0接上文【EASY EAI Nano-TB(RV1126B)开发板试用】命令行功能测试-shell脚本进行IO控制-红绿灯项目 Linux 起动系统下 init 系统大多数
    发表于 11-03 17:25

    shell基本介绍及常用命令之shell基本介绍

    执行结果呈现给用户;同时Shell也是一种解释性的编程语言或者脚本语言开发容易可以在短时间内完成功能强大又好用的
    发表于 09-28 09:05

    嵌入式开发新选择:LuatOS脚本框架入门教程

    LuatOS正成为嵌入式开发的新趋势!本教程带你从基础入手,全面了解其基于Lua的脚本开发模式与轻量级运行框架。 一、LuatOS 编程起步 1.1 底层固件怎么启动 LuatOS
    的头像 发表于 09-26 17:34 303次阅读
    嵌入式<b class='flag-5'>开发</b>新选择:LuatOS<b class='flag-5'>脚本</b>框架入门教程

    【HZ-T536开发板免费体验】2 - 交叉编译仓颉编程语言程序到开发板运行

    感谢电子发烧友和合众恒跃提供的试用机会。 引言 上一篇介绍了开箱的结果,接下来测试一下华为仓颉编程语言开发板上运行的效果。最近对华为仓颉编程语言
    发表于 07-16 21:27

    Shell脚本入门指南

    Shell 是一块包裹着系统核心的壳,处于操作系统的最外层,与用户直接对话,把用户的输入, 解释给操作系统,然后处理操作系统的输出结果,输出到屏幕给与用户看到结果。
    的头像 发表于 06-03 10:47 994次阅读
    <b class='flag-5'>Shell</b><b class='flag-5'>脚本</b>入门指南

    【米尔-RK3562开发板试用评测】命令行功能测试-shell脚本进行IO控制-(绿色)RUN 灯、(红色)User灯

    在板上使用shell脚本语言简单明了开发效率高便于调试修改动态性强资源利用灵活但实时性不足。 shell脚本
    发表于 05-09 18:19

    树莓派新手必看!在树莓派上编写和运行 Shell 脚本

    在本教程中,我将讨论Shell脚本的基础知识、它们的用途以及如何在RaspberryPi上编写和运行Shell脚本。什么是Shell
    的头像 发表于 03-25 09:28 885次阅读
    树莓派新手必看!在树莓派上编写和运行 <b class='flag-5'>Shell</b> <b class='flag-5'>脚本</b>!

    零基础入门:如何在树莓派上编写和运行Python程序?

    是一种非常有用的编程语言,其语法易于阅读,允许程序员使用比汇编、C或Java等语言更少的代码行。Python编程语言最初实际上是作为
    的头像 发表于 03-25 09:27 1527次阅读
    零基础入门:如何在树莓派上编写和运行Python程序?

    【ELF 2学习板试用】命令行功能测试-shell脚本进行IO控制-红绿灯项目-实现开机起动

    接上文【ELF 2学习板试用】命令行功能测试-shell脚本进行IO控制-红绿灯项目 Linux 系统下 init 系统 大多数 Linux 发行版的 init 系统是和 System
    发表于 02-11 11:24

    【ELF 2学习板试用】命令行功能测试-shell脚本进行IO控制-灯闪

    文件 有2方式调试硬件 命令行功能测试和桌面功能测试 我准备在Linux5.10主板命令行启动后网络SSH 下用shell脚本进行控制部分硬件测试。从IO控制-灯闪开始。 ELF 2开发
    发表于 01-25 15:30

    数字电路编程语言介绍

    数字电路编程语言是专门为描述和模拟数字电路而设计的编程语言。它们通常具有以下特点: 硬件描述语言(HDL) :大多数数字电路
    的头像 发表于 01-24 09:39 1392次阅读

    gitee 支持的编程语言有哪些

    Gitee(码云)是一个基于 Git 的代码托管和研发协作平台,类似于 GitHub 和 GitLab。它支持多种编程语言,允许开发者托管和管理代码,进行版本控制,以及协作开发。以下是
    的头像 发表于 01-06 09:50 1108次阅读

    Triton编译器支持的编程语言

    编写和优化深度学习代码。Python是一种广泛使用的高级编程语言,具有简洁易读、易于上手、库丰富等特点,非常适合用于深度学习应用的开发。 二、领域特定语言(DSL) Triton也提供
    的头像 发表于 12-24 17:33 1468次阅读