软件测试学习笔记——shell基础

目录

7.1 shell基础知识

7.2 shell进阶

7.2.1 变量

7.2.2 运算符

7.2.3 shell脚本附带选项


​​​​​​​7.1 shell基础知识

Shell指一种应用程序,该应用程序提供一个界面,用户通过界面访问操作系统内核的服务。是一种命令语言,也是一种程序设计语言。常见的脚本有:Javascript,VBScript,ASP,JSP,PHP,SQL,perl,shell,python,ruby,javaFX,Lua等。

常见的shell种类:

Linux中默认的shell是:/bin/bash,流行shell的有:ash,bash,ksh,csh,zsh等。

1.csh   “类C”具有C语言的风格。已被/bin/tcsh所取代。

2.ksh     具备了C shell的易用特点,许多安装脚本都使用ksh,与bash相比有一定的限制性。

3.tcsh    是csh的增强版,与C shell完全兼容。

4.sh      是一个快捷方式,已经被/bin/bash所取代。

5.nologin  指用户不能登录        #usermod -s /sbin/nologin aop         #vim  /etc/passwd

6.zsh    目前linux中最庞大的一种shell,包含84个内部命令,一般情况下不使用该shell。

7.bash    大多数linux系统默认使用的shell,包含的功能几乎可以涵盖shell所具有的功能,一般的shell脚本都会指定它为执行路径。

Shell编写规范:

代码规范:

   #!/bin/bash           [指定告知系统当前这个脚本要使用的shell解释器]

   Shell相关指令

文件命名规范:

    文件名.sh               .sh是linux下的bash shell的默认后缀。

使用流程:

   创建.sh文件               touch或vim指令

   编写shell代码

   执行shell脚本           脚本必须要有执行权限

案例1:创建test.sh,实现第一个shell脚本程序。

#touch test.sh                    创建.sh文件

#vim test.sh                     打开.sh文件

#!/bin/bash

#str= ‘hello world!’              ‘’ 原样输出,不能转义。“” 能够识别变量,实现转义。

#echo $str                      输出语句“hello world!”

#chmod +x test.sh                 添加执行权限

#ll test.sh                        显示:-rwxr-xr-x. 1 root root 33 4月 test.sh

#./test.sh                        显示:hello world!       (在当前目录中找)     

案例2:使用root用户账户创建并执行test2.sh,实现创建一个shelltest用户,并在其家目录中新建文件try.html。

#touch test2.sh

#vim test2.sh

#!/bin/bash

#useradd shelltest

#touch /home/shelltest/try.html

#chmod +x test2.sh

#/bin/bash test2.sh               脚本执行的另一种方式,/bin/bash脚本的路径(了解)     

#ls /home/shelltest          显示:try.html

7.2 shell进阶

​​​​​​​7.2.1 变量

在使用变量时需要在变量名前加$符号。

案例3:定义一个变量,输出当前时间,要求格式为“年-月-日 时:分:秒”。

#touch test3.sh

#vim ./test3.sh

#!/bin/bash

#dt=~date +’%F %T’~      ~反引号,在脚本中需要执行一些指令并且将执行结果赋给变量的时候需要使用反引号。

#echo $dt

#chmod +x test3.sh

#./test3.sh         显示:2021-11-17 22:38:15

只读变量         readonly 变量名

案例4:定义变量a并且其值为10,随后设置其为只读变量,再去尝试重新赋值。

#touch test4.sh

#vim ./test4.sh

#!/bin/bash

#a=10

#readonly

#a=20

#echo $a

#chmod +x test4.sh

#./test4.sh                 显示:./test4.sh: line 4: a: readonly variable 10

接收用户输入      read -p 提示信息 变量名

案例5:编写一个脚本test5.sh,要求执行之后提示用户输入文件的名称(路径),然后自动为用户创建该文件。

#touch test5.sh

#vim ./test5.sh

#!/bin/bash

#read -p ‘请输入需要创建的文件路径’ filepath

#touch $filepath

#echo ‘文件创建成功!’

#ls -l $filepath

#chmod +x test5.sh

#./test5.sh                 

删除  unset 变量名

案例6:定义变量b=20,再输出b的值,随后删除b,最后再输出b。

#touch test6.sh

#vim ./test6.sh

#!/bin/bash

#b=20

#echo $b

#unset b

#echo $b

#chmod +x ./test6.sh

#./test6.sh               第一行显示20,第二行没有数据但保留位置。

​​​​​​​7.2.2 运算符

算术运算符:

取余

赋值

相等

不等

+

*

/

%

=

==

!=

注意:原生basn不支持简单的数学运算,但可以通过其他命令实现,例如:awk和expr,expr可以完成表达式的求职计算。其中表达式和运算符之间要有空格;完整的表达式被反引号~ ~包含起来。

echo ‘a + b = ’  ~ expr $a +$b ~

关系运算符:

-eq

-ne

-gt

-lt

-ge

-le

相等

(equal)

不等

(not equal)

大于

(great than)

小于

(less than)

大于等于

(great than or equal)

小于等于

逻辑运算符:

与    (且)

非    (取反)

-a         and

-o       or

字符串运算符:

=

!=

-z     (zero)

-n

srt

判断两字符串是否相等

检测字符串长度是否为0

检测字符串是否为空

文件测试运算符:

-d file路径

-f file路径

-r

-w

-x

-s

-e

检测文件是否为目录

检测文件是否为普通文件

是否可读

是否可写

是否可执行

检测文件是否为空

检测文件是否存在

​​​​​​​7.2.3 shell脚本附带选项

传递:#./test.sh a b c

接收:在脚本中用$加序号来表示对应的值。如:$1表示a,$2表示b。

练习:创建自定义指令“user”,可以直接执行,要求该指令具备以下语法和功能:

#user -add 用户名      (添加用户)

#user -del 用户名       (删除用户及其家目录)

1.编写指令

软件测试学习笔记——shell基础 

2.添加别名

alias user =’/root/test.sh’

上一篇:CDZSC_2022寒假个人训练赛21级(9)题解


下一篇:【人机交互接口Bash】