[命令] Linux 命令 set (设置 Shell 里的位置变量或者 Shell 的执行方式)

内容一:set 命令的格式
1.1 设置 Shell 的位置变量的格式

# set <Value of the first position variable> <Value of the second location variable> ......

1.2 设置 Shell 的执行方式

# set <parameter>

或者:

# set <parameter> +o

或者:

# set <parameter> -o

(补充:+o 代表打开特殊属性,-o 代表结束特殊属性)

内容二: set 的常用参数

1) -a 将已修改的变量进行标记,为将其输出至环境变量做准备
2) -b 让被中止的后台进程立刻显示退出状态代码
3) -d 取消使用杂凑表记忆中使用过的指令
4) -e 若退出状态代码不为 0 (正常退出)则立即退出,并显示错误原因
5) -f 取消通配符
6) -h 默认自动记录函数位置
7) -k 让命令的参数为此命令的环境变量
8) -l 默认自动记录 for 循环变量名
9) -m 监视模式
10) -n 测试模式(只读取不执行)
11) -p 优先顺序模式
12) -P 让文件或目录代替符号链接
13) -t 让随后的命令执行后立即退出
14) -u 使用未定义的变量时显示错误信息
15) -v 显示输入值
16) -H shell 使用感叹号 “!” + 号码的方式调用 history 命令中的历史命令
17) -x 命令指向前先显示此命令的参数或变量

(补充:将以上参数前面的 – 换成 + 则会变成相反的效果)

[内容] Linux 数组

内容目录:

内容一:定义数组
1.1 定义数组全部的值
1.1.1 在命令行中定义数组的值
1.1.2 在脚本中定义数组的值
1.2 定义数组某个指定位置元素的值
1.2.1 在命令行定义数组某个指定位置元素的值
1.2.2 在脚本定义数组某个指定位置元素的值

内容二:读取数组
2.1 读取数组全部的值
2.2 读取数组元素的个数
2.3 读取数组最长单个元素的长度
2.4 读取数组单个元素的值
2.5 读取数组单个元素的值,并在前面加前缀

内容三:数组的实用案例
3.1 创建使用数组的脚本
3.2 执行使用数组的脚本

具体的内容:

内容一:定义数组
1.1 定义数组全部的值
1.1.1 在命令行中定义数组的值

# <array_name>=(<value0> <value1> <value2> <value3> <value4>)

或者:

# <array_name>=(\
<value0>\
<value1>\
<value2>\
<value3>\
<value4>\
)

1.1.2 在脚本中定义数组的值

<array_name>=(
<value0>
<value1>
<value2>
<value3>
<value4>
)

或者:

<array_name>[0]=<value0>
<array_name>[1]=<value1>
<array_name>[2]=<value2>
<array_name>[3]=<value3>
<array_name>[4]=<value4>

1.2 定义数组某个指定位置元素的值
1.2.1 在命令行定义数组某个指定位置元素的值

# <array_name>[0]=<value0>

(补充:这里以定义数组第 1 个元素位置的值为例)

1.2.2 在脚本定义数组某个指定位置元素的值

<array_name>[0]=<value0>

(补充:这里以定义数组第 1 个元素位置的值为例)

内容二:读取数组
2.1 读取数组全部的值

# echo ${<array_name>[*]}

或者:

# echo ${<array_name>[@]}

2.2 读取数组元素的个数

# echo ${#<array_name>[*]}

或者:

# echo ${#<array_name>[@]}

2.3 读取数组最长单个元素的长度

# echo ${#<array_name>[n]}

2.4 读取数组单个元素的值

# echo ${<array_name>[1]}

(补充:这里以读取数组第 2 个元素的值为例)

2.5 读取数组单个元素的值,并在前面加前缀

# echo "First Index: ${<array_name>[0]}"

(补充:这里以读取数组第 1 个元素的值,并在前面加上 First Index: 前缀为例)

内容三:数组的实用案例
3.1 创建使用数组的脚本

# vim test.sh

创建以下内容:

#!/bin/bash
  
NAME[0]='a1'
NAME[1]='b2'
NAME[2]='c3'
NAME[3]='d4'
NAME[4]='e5'

echo "first one: ${NAME[0]}"
echo "${NAME[*]}"

(补充:这里以创建名为 test.sh 显示数组的第一个值和所有值,并在第一个值前面添加 first one 前缀的脚本为例)

3.2 执行使用数组的脚本

# . test.sh 
first one: a1
all: a1 b2 c3 d4 e5

(补充:这里以执行名为 test.sh 的脚本,得到第一行是 first one: a1 第二行是 all: a1 b2 c3 d4 e5 的结果为例)

[工具] Shell 实时监控内存 (永久版)

介绍:

作者:朱明宇
名称:实时监控内存
作用:实时监控内存,并每 3 秒钟更新一次状态信息

使用方法:
1. 给此脚本添加执行权限
2. 执行此脚本

脚本:

#!/bin/bash

while true
do
        sleep 10
        free -m | head -1
        free -g | grep Mem
done