第五次课堂总结--shell

课前回顾
嵌入式Linux开发工具:-gcc 、gdb、make
学习目标:了解gdb,编写makefile
作业:总控Makefile、功能目录Makefile、scripts的
关于shell
本节课内容:
自动生成: CMake autotool
嵌入式Linux开发工具-shell编程(脚本:批处理)
Linux系统运维工程师(嵌入式系统开发–系统移植)
什么是shell
1.命令解析器(将用户输入的命令解析,调用相应的命令可执行文件)
2.脚本语言(脚本:批处理)
shell既是一种命令语言,又是一种程序设计语言,它提供了许多在高阶语言中才具有的控制结构。
执行命令:/bin /sbin/环境变量
确切一点说,Shell就是一个命令行解释器,它的作用就是遵循一定的语法将输入的命令加以解释并传给系统。它为用户提供了一个向Linux发送请求以便运行程序的接口系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。
Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它互动式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高阶语言中才具有的控制结构,包括循环和分支。
shell基本语言
程序的开始:#!/bin/sh
脚本可执行:chmod +x filename
执行脚本:./filename
shell变量
详情参考上课ppt
定义变量时,变量名不加美元符号$
your_name="cxx.com"注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:
1、命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
2、中间不能有空格,可以使用下划线(_)。不能使用标点符号。
3、不能使用bash里的关键字。
PPT内容:
#!/bin/sh#对变量赋值:a=“hello world”现在打印变量a的内容:echo “A is:”echo $a在编辑器中输入以上内容,然后将其保存为一个文件HelloWorld。之后执行chmod +x HelloWorld最后输入./ HelloWorld执行该脚本。这个脚本将会输出:A is:hello world有时候变量名很容易和其他名字混淆,比如:S13:num=2echo “this is the $numnd”
思考:输出?Why?num=2echo “this is the KaTeX parse error: Expected ‘}’, got ‘EOF’ at end of input: … “this is the {num}nd”这将打印: “this is the 2nd”

默认变量
$#传入脚本的命令行参数个数
$*所有命令行参数值,在各个参数值间留有空格$0命令本身(shell 件名)$1第一个命令行参数$2第二个命令行参数在命令后面跟的是命令行参数:
局部变量:
在变量首次被复制时加上local关键字可以什么一个局部变量, 例S3:
#!/bin/bashhello=“var1“echo $hellofunction func1 {local hello=“var2”echo $hello}func1echo $hello
shell基本语句-if、for、while
if语句:
例如:
比较整数a和整数b是否相等: if [ $a = $b ]
比较整数a是否大于整数b: if [ $a -gt $b ]比
较字符串a和b是否相等: if [ $a = $b ]
判断字符串a是否为空: if [ -z $a ]
比较整数变量a是否大于b: if [ $a -gt $b ]
for语句:
for循环与C语言中有所不同,在BASH中for循环的基本结构是:
for var in [list]do#code blockdone其中var是循环控制变量, [list]是var需要遍历的一个集合,do/done包含了循环体,相当于c语言中的大括号。另外do和for被写在同一行,必须在do前面加上“;”如: for var in [list];doS7:#!/bin/bashfor day in Sun Mon Tue Wed Thu Fri Satdoecho $daydone
while语句:
while语句
while [condition]
do
#code block
done

发布了10 篇原创文章 · 获赞 0 · 访问量 267

猜你喜欢

转载自blog.csdn.net/m0_46451503/article/details/105211568
今日推荐