ba-shell学习总结
Tags: script
shell 是什么?
shell是一个命令行解释器,为用户提供了一个向linux内核发送请求以便运行程序的界面系统级程序,用户可用shell 来启动,挂起,停止甚至编写一些程序
shell 分类:c_shell,z_shell,ba_shell
脚本的执行方式
- 脚本需要以 #!/bin/bash 开头
- 脚本需要可执行权限 + X 或者 sh + xxx.sh执行。
Shell 变量介绍
- 分系统变量和用户自定义变量,
- 系统变量 :$HOME $PWD $SHELL U S E R 等 等 可 用 s e t 显 示 所 有 的 系 统 变 量 “ USER 等等 可用set显示所有的系统变量 “ USER等等可用set显示所有的系统变量“”用来表示变量替换
- 用户自定义: 变量名(不可数字开头,大写)=值 (=之间不可有空格) A=10
- 撤销变量:unset + 变量 unset A
- 声明静态变量:readonly 变量,注意:不能unset
- 将命令的返回值赋给变量 A=’date’ or A=$(date)
- 将shell 变量输出为环境变量/全局变量(全局都可见,可用的变量) export 变量名=值 /etc/profile
- 让修改后的配置文件立即生效 source 配置文件 source /etc/profile
- 多行注释 :<<! xxxx !
- 位置参数 $0 表示命令 $1表示第一个参数。。。 9 表 示 第 9 个 参 数 。 9表示第9个参数。 9表示第9个参数。#表示参数的个数
- 运算符写法 REST1= ( ( 2 + 3 ) ) R E S T 2 = ((2+3)) REST2= ((2+3))REST2=[2+3] REST3= expr 2 + 3
语法
-
条件判断
1): = 字符串比较判断语句:
2): 两个整数的比较
-lt 小于 little-le 小于等于
-eq等于 equal
-gt 大于-ge 大于等于
-ne 不等于
3): 按照文件权限进行判断
-r有读的权限
-w有写的权限
-x有执行的权限4): 按照文件类型进行判断
-f文件存在并且是一个常规的文件
-e文件存在-d文件存在并是一个目录
if [ "ok" = "ok" ] then echo "equal" fi
if [ -f /root/shcode/aaa.txt ] then echo "exist" elif echo "not exist " fi
-
case 语句
case $1 in #位置参数 "1") echo "周一“ ;; "2") echo "周二" ;; *) echo "other..." ;; esac #case 反写
-
For 循环
-
while 循环
-
read 读取控制台输入
read -p "请输入一个num" NUM -t 10 echo "输入的num=$NUM"
-
自定义函数
学习参考韩顺平老师视频(附视频地址)
https://www.bilibili.com/video/BV1Sv411r7vd?p=107&spm_id_from=pageDriver