shell知识点梳理

1. shell的理解

shell程序是文本文件,里面存放的是批量的Linux命令集合。该文件能被shell解释执行。
其一般由Linux命令、shell命令、控制语句及注释语句构成。
shell程序通过 #!/bin/bash#!/bin/sh指定用哪个程序来编译和执行脚本。

2. 变量

变量类型:根据变量的作用域,变量可分为本地变量和环境变量。
有一个是当前用户的环境变量,其所在文件为 ~/.bash_profile
export导出环境变量
source使修改的环境变量文件生效:source .bash_profile
变量赋值:等号两边不能有空格
显示变量:echo $varecho ${var}
清除变量:unset var
显示所有变量:set
环境变量按照惯例需要大写

3. 位置参量

执行的脚步 + 参数 ,这个参数就是位置变量

位置变量含义
$0当前脚本的文件名
$1~$9第1个到第9个位置参量
${10}第10个位置参量
$#位置参量的个数
$*已单字符串显示所有位置参量
$@未加双引号时与 $*含义相同,加双引号时有区别
$$脚本运行的当前进程号
$!最后一个后台运行的进程的进程号
$?显示前面最后一个命令的退出状态,0 没有错误,非0 有错误

4.数组

数组定义:arr=(var1 var2 var3)
数组使用:echo ${arr[0]}
数组所有元素: echo ${arr[*]}
数组个数:echo ${#arr[*]}

5. 时间

date
 man date
 date +%Y-%m-%d

在脚本中的写法:

data_time=$(date)
date_time=`date`

一天前

data_time=$(datedate='1 days ago' +%Y-%m-%d)

一天后

data_time=$(datedate='1 days' +%Y-%m-%d)

6.判断

判断有两种方式:test 和 [],常用[]
注意:用判断符号[],注意[]的两端需要有空格来分割,如[ -z “$HOME” ]

a. 判断某个文件类型
例:test –e filename 表示该文件是否存在

符号含义
–e表示该文件是否存在
-f是否是文件
-d是否是目录

b.判断权限
例:test –r filename 是否可读

符号含义
-w是否可写
-x是否可执行

c.判断两个整数

符号含义
-eq两数相等
-ne两数不等
-gt大于
-lt小于
-ge大于等于
-le小于等于

d.判断字符串
例:
test –z string 判断是否为空,为空,为true
test –n string 判断是否为非空,非空为true
test str1=str2 判断str1与str2是否相等,相等,为true
test str1!=str2 判断str1与str2是否不相等,不相等,为true

符号含义
–z判断是否为空,为空,为true
–n判断是否为非空,非空为true
str1=str2判断str1与str2是否相等,相等,为true
str1!=str2判断str1与str2是否不相等,不相等,为true

注意
${TEST:-${TEST_ONE}}
该语句表示,若TEST变量不存在,则执行$TEST_ONE

7. if判断

多个条件判断时的示例:

if [ 条件判断式 ] || [ 条件判断式 ]
if [ 条件判断式  ||  条件判断式 ]

if语句有三种方式,可以嵌套
方式一:

if[ 条件判断式 ];then
执行语句
fi

方式二:

if[ 条件判断式 ];then
执行语句
else
执行语句
fi

方式三:

if[ 条件判断式 ];then
执行语句
elif [ 条件判断式 ];then
执行语句
else
执行语句
fi

8.循环

循环可以通过 for 和 while 实现
a. for循环
示例1:

for var in {1..10}
do
语句
done

实例2:

for((i=0;i<10;i=i+1))
do
s=$((${s}+${i}))
done

更详细的实例:for详细用法
b.while循环

while [ 条件语句 ]
do
语句
done

9.读取文件内容

文件内容
file_name:

hello word

方法一:

while read item_one item_two
do
echo $item_one $item_two
done < /path/file_name

方式二:
从文件或命令中逐行读取

while read line
cat /path/file_name | while read line
do
echo $line
done
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

电猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值