chaoz的杂货铺

生命有息、学无止境、折腾不止

0%

linux-shell-复盘

变量的高级用法

s1
s2
s3
s4
s5
s6
s7
s8
s9
s10
s11
s12

函数的高级用法

向函数传递参数

s13

函数返回值

$0 这个脚本/程序的执行名字
$n 这个脚本/程序的第n个参数值,n=1..9
$ 这个脚本/程序的所有参数,此选项参数可超过9个。
$# 这个脚本/程序的参数个数
$$ 这个脚本/程序的PID(脚本运行的当前进程ID号)
$! 执行上一个背景指令的PID(后台运行的最后一个进程的进程ID号)
$? 执行上一个指令的返回值 (显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误)
$- 显示shell使用的当前选项,与set命令功能相同
$@ 跟$
类似,但是可以当作数组用

使用return返回值,只能返回1-255的整数函数使用return返回值,通常只是用来供其他地方调用获取状态,
因此通常仅返回0或1;0表示成功,1表示失败

使用echo可以返回任何字符串结果通常用于返回数据,
比如一个字符串值或者列表值

s14

s15

全局变量和局部变量

全局变量:

不做特殊声明,Shell中变量都是全局变量
Tips:大型脚本程序中函数中慎用全局变量

局部变量:

定义变量时,使用local关键字
函数内和外若存在同名变量,则函数内部变量覆盖外部变量

s16

函数库

经常使用的重复代码封装成函数文件
一般不直接执行,而是由其他脚本调用

s17

库文件名的后缀是任意的,但一般使用.lib
库文件通常没有可执行选项
库文件无需和脚本在同级目录,只需在脚本中引用时指定
第一行一般使用#!/bin/echo,输出警告信息,避免用户执行

文件查找之find命令

s18
s19
s20
s21
s22
s23

locate命令介绍:

文件查找命令,所属软件包mlocate
不同于find命令是在整块磁盘中搜索,locate命令在数据库文件中查找
find是默认全部匹配,locate则是默认部分匹配

updatedb命令:

用户更新/var/lib/mlocate/mlocate.db
所使用配置文件/etc/updatedb.conf
该命令在后台cron计划任务中定期执行

whereis:

-b只返回二进制文件
-m只返回帮助文档文件
-s只返回源代码文件

which:

作用:仅查找二进制程序文件

-b只返回二进制文件

对比:

s24

grep

s25

grep和egrep:
s26

sed

sed(Stream Editor),流编辑器。对标准输出或文件逐行进行处理

语法格式:

第一种形式:stdout | sed[option]”pattern command”
第二种形式:sed[option]”pattern command”file

s27

s28

s29

pattern

s30

编辑命令详解

awk

报告生成器

awk是一个文本处理工具,通常用于处理数据并生成结果报告

s31
s32
s33
s34

喜欢这篇文章?打赏一下作者吧!

欢迎关注我的其它发布渠道