嵌入式系统设计——Linux开发工具.下(5)

嵌入式Linux开发工具-shell编程(脚本:批处理)

(5)shell:命令解析器

——将用户输入的命令解析,调用相应的命令的可执行文件

1.Shell是什么?
简单来说shell是脚本语言,本身是一个用C语言编写的程序,用来实现命令的批处理。
确切一点说,Shell就是一个命令行解释器,它的作用就是遵循一定的语法将输入的命令加以解释并传给系统。它为用户提供了一个向Linux发送请求以便运行程序的接口系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。

2.编程
程序必须以下面的行开始(必须放在文件的第一行):
#!/bin/sh
#!用来告诉系统它后面的参数是用来执行该文件的程序。
要使脚本可执行:
chmod +x filename
然后输入./filename来执行脚本
在进行shell编程时,以#开头的句子表示注释,直到这一行的结束。建议使用注释,防止长时间不用导致忘记该脚本的作用及工作原理

3.变量:
在shell编程中,所有的变量都由字符串组成,并且不需要对变量进行声明。要赋值给一个变量,您可以这样写:变量名=值
注意:
-取出变量值可以在变量前加一个($)
-变量赋值时,“=”两边都不能有空格
-语句结尾不需要分号

例:HelloWorld

#!/bin/sh
#对变量赋值:
a=“hello world”
#现在打印变量a的内容:
echo “A is:”
echo $a

在编辑器中输入以上内容,然后将其保存为一个文件HelloWorld。之后执行chmod +x HelloWorld
最后输入./ HelloWorld执行该脚本。
这个脚本将会输出:

A is:
hello world

注意:
有时候变量名很容易和其他名字混淆,比如:

#!/bin/sh
num=2
echo “this is the $numnd”

输出:

num=2
“this is the $numnd” 

将第二句改为

echo “this is the ${num}nd”

这将打印:

 “this is the 2nd”

在这里插入图片描述

4.默认变量
在命令后面跟的就是命令行参数
$#:传入脚本的命令行参数个数
$*:所有命令行参数值,在各个参数值间留有空格
$0:命令本身(shell文件名)
$1:第一个命令行参数
$2:第二个命令行参数
5.局部变量
局部变量,也称内部变量,是指在一个函数内部或复合语句内部定义的变量。
局部变量的生存期:从函数被调用的时刻算起到函数返回调用处的时刻结束
使用方法:在变量首次被复制时加上local关键字可以一个局部变量。
例:

#!/bin/bash
hello=“var1“
echo $hello
function func1 {	
local hello=“var2”	
echo $hello	
}	
func1	
echo $hello

输出:

var1
var2
var1

6.If语句
(1)

If [expression]
then
#code block
fi

(2)

If [expression]
then
#code block
else
#code block
fi

(3)

If [expression]
then
#code block
else if [expression]
then
#code block
else
#code block
fi
fi

例:
比较整数a和整数b是否相等:if[ $a = $b ]
比较整数a是否大于整数b:if[ $a –gt $b ]
比较字符串a和b是否相等: if[ $a = $b ]
判断字符串a是否为空:if[ -z $a ]

7.For语句

for var in [list]
do
#code block
done

其中var是循环控制变量, [list]是var需要遍历的一个集合,do/done包含了循环体,相当于c语言中的大括号。另外do和for被写在同一行,必须在do前面加上“;”
如: for var in [list];do
例:

#!/bin/bash
for day in Sun Mon Tue Wed Thu Fri Sat
do	
echo $day
done

如果列表被包含在一对双引号中,则被认为是一个元素。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值