Linux网课学习笔记13——Shell编程入门-Shell的语法介绍

Shell的语法介绍

在这里插入图片描述

演示操作:关于环境变量

在这里插入图片描述
在这里插入图片描述

关于预定义变量

在这里插入图片描述
在这里插入图片描述
演示:

新建文件:

vim variable.sh

按 i 键编辑

#! /bin/bash
echo "The letters you like is : $1 $2 $3"  #输出位置变量的参数
echo "本脚本名:" $0
echo "本脚本中参数的个数:"$#
echo "本脚本的所有参数:"$*
echo "上一条命令的返回值:"$?  #0:成功;其他值:失败
cd /hom  #切换至目录/home,此处故意输错,使命令不生效
echo $?  #上一条命令(cd /hom)执行失败,返回非0
cd /home  #此处输入正确
echo "上一条命令的返回值" $?
echo "当前进程的pid进程号:" $$

按Esc键,输入 :wq 保存退出

执行:

sh variable.sh

在这里插入图片描述
如上,如果直接按回车,没有给参数,输出就是0

下面给参数:
在这里插入图片描述

输入输出命令

在这里插入图片描述
操作演示:

创建文件contact.sh,编辑保存:

vim contact.sh
#! /bin/bash
# 参数-p把键盘输入的数据存入变量NAME,PHONE
read -p "Enter your name phone:" NAME PHONE
echo $NAME,$PHONE
echo $NAME,$PHONE>contact.txt

在这里插入图片描述
执行:

sh contact.sh

完成输入输出,而且也把内容存到了txt文件:
在这里插入图片描述

其他知识点:

使用变量

在Shell程序中,提供了说明和使用变量的功能。与高级编程语言不同,在Shell程序中所有变量保存的值都是字符串。

在Linux的Shell中,可以使用以下几种变量:

1.环境变量:是指与Shell执行的环境相关的一些变量。Shell环境变量在Shell启动时,就已定义好,如PATH,HOME,MAIL等,这些变量用户还可以重新定义。可使用set命令查看系统中各环境变量的值。

2.用户自定义变量变量名=变量值

3.预定义变量(系统变量):用户不能修改,只能引用这些变量。
所有的预定义变量都是由“$”符号与另一个符号组成的,常用的Shell预定义变量有以下几个:

$#:位置参数的数量

$*:所有位置参数的内容

$?:命令执行后返回的状态

$$:当前进程的进程号

$!:后台运行的最后一个进程号

$0:当前执行的进程名

输入/输出内部命令

1.输出命令:echo

2.输入命令:read

举例3:编写一个Shell程序contact,接受用户输入的用户名和电话号码,将这些信息显示在终端上,并保存到contact.txt文件中。

#!/bin/bash
 echo Name: 
 read NAME 
 echo Telephone: 
 read PHONE 
 echo $NAME,$PHONE>contact.txt

条件测试

1.测试命令执行结果

执行任何Linux命令都可能存在两种状态:正确或错误。
若前一条命令正确执行,则返回状态值为0,返回值为任何非0值都表示执行命令出错。

使用预定义变量“$?”可返回命令执行后的状态,在程序中可根据预定义变量“$?”的值来判断前一条命令的执行是否正确。

2.测试文件状态

[ 测试表达式 ]

注意:中括号“[]”与测试表达式之间必须有一个空格来分隔。

测试文件状态可使用以下参数:

-e 文件名:若文件存在,返回真。

-r 文件名:若文件可读,返回真。

-w 文件名:若文件可写,返回真。

-x 文件名:若文件可执行,返回真。

-s 文件名:若文件类型为套接字文件,返回真。

-d 文件名:若文件类型为目录文件,返回真。

-f 文件名:若文件类型为普通文件,返回真。
-c 文件名:若文件类型为字符设备文件,返回真。

-b 文件名:若文件类型为块设备文件,返回真。

举例4:isdir

举例5:compare1

3.测试数据值

-eq:判断是否相等

-ne:判断是否不相等

-gt:判断是否大于

-ge:判断是否大于等于

-lt:判断是否小于

-le:判断是否小于等于

举例6:compare2

4.测试字符串:

= != -z -n

举例7:compare1

5.逻辑操作符:

! -a -o

流程控制语句

1.if条件语句

在这里插入图片描述
举例8:ifyuju

2.case条件语句

在这里插入图片描述
举例9:caseyuju

3.for循环语句

在这里插入图片描述
举例10:fortest

举例11:loop1

4.while和until循环语句

在这里插入图片描述
举例12:whiletest

举例13:loop2

举例14:untiltest

举例15:loop3

函数

在这里插入图片描述
举例16:hanshu

举例17:func1

处理参数

1.位置参数

当调用Shell程序的命令行时,除了输入Shell程序名之外,还可以在后面跟上多个参数,这些参数与在命令行中的位置有关,因此称为位置参数。各位置参数之间用空格分隔,用$1表示第1个参数,$2表示第2个参数,依次类推。而$0是一个特殊的变量,其内容是当前Shell程序的文件名

举例18:parameter1

2.函数参数

向函数传递参数与向一般脚本传递参数一样,应使用预定义变量$1~$9来传递。函数取得所传参数后,将原始参数传回Shell脚本。

举例19:sum1

猜你喜欢

转载自blog.csdn.net/weixin_45550460/article/details/105289920
今日推荐