声明:学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章。笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!
一、函数的定义和传参
1、函数定义
定义一个输出hello的函数
HelloFunc()
{
echo "Hello!"
}
HelloFunc
运行结果:
2、函数传参
HelloFunc()
{
echo "Hello!"
echo "我是$1,请关注我!"
}
HelloFunc caigen
函数HelloFunc把caigen传递给$1
运行结果:
二、脚本间的调用
1、不同脚本的相互调用
(1)编写两个脚本文件
a.sh代码内容如下:
echo "Hello Caigen"
b.sh代码内容如下:
. a.sh
运行b.sh
b.sh通过调用啊a.sh输出的内容为a.sh的内容
(2)脚本变量调用演示
a.sh代码内容如下:
name=Caigen
age=66
b.sh代码内容如下:
source a.sh
My name is $name , $age years old!
运行b.sh
总结:通过以上示例,可以了解脚本间如何进行调用。
三、输出重定向和输入重定向
1、输出重定向
(1)简单介绍:
输出重定向是指改变命令输出的目的地。默认情况下,命令的输出会显示在标准输出(终端屏幕),但通过输出重定向,可以将输出发送到文件或其他设备。
“>” 用于将命令的输出重定向到一个文件,如果文件不存在则创建它,如果文件存在则覆盖原有内容。
“>>” 用于将命令的输出追加到一个文件的末尾。例如,echo “New data” >> data.log,这个命令会将字符串 “New data” 追加到data.log文件的末尾,而不会覆盖文件中原有的内容。
(2)应用场景:
记录命令输出:当我们执行一些系统管理任务,如查看系统日志,为了方便后续查看和分析这些日志信息,我们可以将输出重定向到一个文件中,这样就可以将日志信息保存下来,用于故障排查等工作。
生成报告:在数据分析或程序运行过程中,我们可能需要生成报告。例如,一个数据统计程序会输出一些统计结果,通过输出重定向将这些结果保存到文件中,我们可以使用这些文件来生成格式良好的报告,或者将其作为其他程序的输入进一步处理。
(3)演示
演示:把指令内容输出到文本
ls >1.txt
ifconfig >1.txt
2、输入重定向
(1)简单介绍:
输入重定向是指改变命令的输入源。通常情况下,命令会从标准输入(键盘)读取数据,但通过输入重定向,可以让命令从文件或其他非标准输入设备获取数据。
常用的输入重定向符号是 “<”。
(2)应用场景:
批量处理数据:假设我们有大量的数据存储在文本文件中,例如一个包含学生成绩的文件,每一行是一个学生的成绩。如果我们想要统计成绩高于某个分数的学生人数,我们可以编写一个简单的脚本来读取文件中的成绩并进行统计。使用输入重定向可以方便地将文件内容作为脚本的输入。
测试程序:在软件开发中,我们可以将测试数据存储在文件中。当测试一个程序的输入处理功能时,通过输入重定向将测试数据文件输入到程序中,这样可以方便地重复测试,并且可以很容易地修改测试数据,而不需要每次都手动输入数据到程序中。
(3)演示
演示:把文本内容进行处理
在2.txt查找包含“second”关键词的行
文本2.txt内容
This is the first line.
This is the second line.
This is the third line.
执行命令grep second<2.txt
在3.txt对姓名进行排序
文本3.txt内容
Caigen
Bobby
Jack
Alice
Ruby
执行命令sort < 3.txt
(4)把输入重定向的内容输出到新文本
以3.txt为例
执行命令sort < 3.txt >4.txt
3、文件描述符
文件描述符 0 1 2
0:标准输入
1:标准输出
2:错误输出
ls >5.txt 2>6.txt
如果语句无误,则写入5.txt,错误信息输入6.txt
cmg >5.txt 2>6.txt