Linux Shell学习笔记

Shell脚本

Shell脚本命令的工作方式有两种:交互式和批处理

  • 交互式(Interactive):用户每输入一条命令就立即使用并返回结果
  • 批处理(Batch):由用户需要先编写Shell脚本,Shell会一次性的执行脚本中所有命令

查看当前用户所使用的SHELL解释器:echo $SHELL

Shell脚本文件一般默认使用 .sh 结尾

#!/bin/bash
#我是一个注释
pwd
ls -al
  1. 第一行是脚本声明( #! ),告诉系统使用哪种Shell解释器来执行该脚本
  2. 第二行的注释信息( # ) 是对脚本功能和某些命令的介绍信息
  3. 第三、四行则是Linux的命令

Linux运行Shell脚本文件有两种方式;第一种方式是通过 bash example.sh 执行该脚本文件,解释器会忽略 脚本声明( #! );第二种是通过 ./example.sh 执行脚本文件,脚本会通过脚本声明( #! )来进行解释执行

脚本内置变量解释
$0 当前Shell脚本程序的名称
$# 参数的总数
$* 所有位置的参数值
$? 上一次命令的执行返回值
$N 对应第N个位置的参数值

变量之间用空格间隔

[ 条件表达式 ] 方括号两侧具有一个空格

文件测试语句

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

逻辑运算符

运算符作用
&& 逻辑 ”与“;条件测试语句的前一个判断结果为true才会执行后面紧挨的命令
|| 逻辑 ”或“;表示前面的命令执行失败才会执行后面的命令
! 逻辑 ”非“;条件测试语句的判断结果取反值

整数比较运算符

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

字符串比较运算符

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

流程控制语句

if

if条件测试语句可以让脚本根据实际情况自动执行相应的命令;if语句分为 单分支结构、双分支结构、多分支结构

if 条件测试语句
   then
     命令序列
     。。。
   [elif
     命令序列
     。。。]
   [else
     命令序列
     。。。]
fi

for

执行前已经确定范围的可以使用for循环

for 变量名 in 取值列表
do
  命令序列
  。。。
done

while

执行前不确定最终执行的次数

while 条件测试语句
do
    命令序列
done

case

case语句是在多个范围内匹配数据,若匹配成功则执行相关命令并结束整个条件测试;而如果数据不在所列出的范围内,则会去执行 星号(*) 中所定义的默认命令

case 变量值 in
模式1)
   命令序列1
   ;;
模式2)
	命令序列2
	;;
.......
*)
	默认命令序列
esac

其他

/etc/passwd文件保存的是用户账户等信息

/dev/null 被称为Linux黑洞的文件

复制请注明出处,在世界中挣扎的灰太狼
原文地址:https://www.cnblogs.com/XingXiaoMeng/p/13019820.html