shell编程(完):脚本调用及输入输出重定向

声明:学习视频来自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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值