Linux基础(3) Vim编辑器与Shell命令脚本 您所在的位置:网站首页 shadow和passwd两个文件的区别 Linux基础(3) Vim编辑器与Shell命令脚本

Linux基础(3) Vim编辑器与Shell命令脚本

2023-03-20 03:18| 来源: 网络整理| 查看: 265

Shell脚本的工作方式

交互式(interactive):用户输入一条命令就立即执行。

批处理(Batch):用户事先编写好一个完整的Shell脚本,Shell会一次性执行脚本中的诸多命令。

eg: 查看当前命令行终端解释器

echo $SHELL #打印结果:/bin/bash 表明系统已经默认使用Bash作为命令行终端解释器了

编写简单的脚本

eg: 使用命令vim example.sh生成一个Shell脚本文件,最好添加.sh后缀,文件内容如下:

#!/bin/bash #This is a simple example pwd ls -l

​其中,脚本声明#!告诉系统使用的Shell解释器,注释信息#对脚本的信息进行介绍,其他内容则是相应的Linux命令。

运行Shell脚本文件 ​eg:bash example.sh

使用Bash解释器直接运行Shell脚本文件。

eg:./example.sh

直接输入完整的路径来执行脚本文件。

接收用户的参数

eg: 使用命令vim example.sh生成一个Shell脚本文件,文件内容如下:

#!/bin/bash echo "当前的脚本名称为$0" echo "总共有$#个参数,分别是$*" echo "第一个参数为$1,第五个参数为$5"

执行命令bash example.sh 1 2 3 4 5后,最后的执行结果为:

当前的脚本名称为example.sh 总共有5个参数,分别是1 2 3 4 5 第一个参数为1,第五个参数为5

其中$0对应当前Shell脚本程序的名称,$1、$2、$3...分别对应着第N个位置的参数值,$#对应参数的个数,$*对应的是所有位置的参数值,$?对应的是显示上一次命令的执行返回值。

判断用户的参数

测试语句的格式为[ 条件表达式 ],注意方括号和条件表达式之间有空格。Shell脚本中的条件测试语法可以判断表达式是否成立,若条件成立则返回数字0,否则便返回非零值。

条件测试语句可以分为4种:

文件测试语句逻辑测试语句整数值比较语句字符串比较语句

文件测试语句

eg: 测试文件是否为目录类型

[ -d /etc/fstab ] #第一次执行 echo $? #第二次执行

输出结果为1,表明文件/etc/fstab不是目录,或这个目录不存在 eg: 测试文件是否为一般文件

[ -f ./example.sh ] #第一次执行 echo $? #第二次执行

输出结果为0,表明文件存在,且为一般文件。 eg: 测试文件是否存在

[ -f ./xxxxxx ] #第一次执行 echo $? #第二次执行

输出结果为1,表明文件不存在

文件测试所用的参数如下:

运算符作用-d测试文件是否为目录类型-e测试文件是否存在-f判断是否为一般文件-r测试当前用户是否有权限读取-w测试当前用户是否有权限写入-x测试当前用户是否有权限执行

逻辑测试语句

eg: 测试文件是否为目录类型

[ ! -d /etc/fstab ] || echo "dir" && echo "Not a dir"

输出结果为Not a dir,表明文件/etc/fstab不是目录,或这个目录不存在。执行顺序:语句[ ! -d /etc/fstab ]返回真,则不执行||后的操作,而转去执行&&后操作,即输出Not a dir。

逻辑测试所用的参数如下:

运算符作用&&只有当前面的语句为真,才执行后面的语句||只有当前面的语句为假,才执行后面的语句!逻辑测试结果取反

整数值比较语句

eg: 比较两个数的大小

[ 1 -lt 2 ] && echo "True" || echo "False"

输出结果为True,表明1比2小。

逻辑测试所用的参数如下:

运算符作用-eq是否等于-ne是否不等于-gt是否大于-lt是否小于-le是否等于或小于-ge是否大于或等于

字符串比较语句

eg: 比较两个字符串是否相同

[ $USER = lh ] && echo "user is lh" || echo "user is not lh"

输出结果为user is lh,证明此时用户名称为lh

字符串测试所用的参数如下:

运算符作用=比较字符串内容是否相同!=比较字符串内容是否不同-z判断字符串内容是否为空


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有