一,汇总
2019-12-23 本文已影响0人
热爱_生活
1. Bash 特性
别名
历史命令
2. 变量
###环境变量
#####默认一些环境变量
- HOME
- HISTSIZE
- USER root
#####环境变量文件
- 系统级别,所用户都生效
/etc/porfile
- /etc/porfile.d/*.sh
/etc/bashrc
- 个人用户级别,只有当前的用户生效
$HOME/.porfile
~/.bashrc
自定义变量
a=10
- 只可以在当前的 shell 环境中使用
退出当前 shell 就会失效
export 变量名
PATH=${PATH}:/home/bin
export PATH
环境变量和自定义变量的区别
环境变量 可以被 子 shell 继承(向下无限延伸的继承)
**********
bash
exit
自定义变量 只可以在当前的 shell 环境中使用
su shark
su - shark
变量名的定义规则
只能包含这些: 字母 a-zA-Z 数字 0-9 下划线 _
不可以用数字开头
不可以使用 Linux 系统的中(bansh)关键字
变量名要有语义化
u1 --> username --> user_name
正则
次数匹配
. 任意一个
* 重复前一个 零 到 多个 任意 RE 字符
? 有没有媳妇 0 或者 1 个 前一个 RE 字符
+ 一个以上前一个 RE 字符
{n,m}
[] 中括号内的字符都是普通字符 只能有一个
示例
[aB]
[a-zB]+
[a-zA-Z]+
() 分组 括号内的字符是一个整体
| 或
示例
-(abc|a23)
-a(bc|23)
逻辑结构
-f 存在 普通文件
-d 存在 文件夹
-s 非空文件
! -z 一个变量定义了 非空的值
判断字符串的
==
!=
判断数字
-eq
-ne
-lt
-gt
-le
-ge
$? 是返回上一条命令的执行状态码
${#name} 获取 变量 name 的值的字符串长度
if []
then
fi
while true
do
...
done
while :
do
...
done
while read line
do
...
done < /path/to/file
for i in {1..10}
do
done
for i in $(command)
do
done
执行脚本的方式
- bash a.sh
- . a.sh
source a.sh
# 使用当前的 shell 执行 a.sh 中的代码
- ./a.sh
/path/to/a.sh
- 条件一 里面最后有声明解释器
- #!/bin/bash
- #!/bin/sh
- #!/usr/bin/env bash
- 条件二 chmod +x a.sh