shell-函数调用进阶即重定向
shell-函数调用进阶
声明!
学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!有兴趣的小伙伴可以点击下面连接进入b站主页B站泷羽sec
另附赠「黑马程序员」,复制整段内容,打开最新版「夸克APP」即可获取。
链接:https://pan.quark.cn/s/d63ea052acab
不同脚本的互相调用
创建一个a.sh
脚本在里面随便输入一点内容例如:echo "hello world"
,要在b.sh
中直接调用a.sh
有两种方法:
方法一:
直接在b.sh
中输入./2.sh
注意这里最好写他的绝对路径,运行输出会发现成功输出了a.sh
的内容
方法二:
在b.sh
中输入source a.sh
就可以了
那么变量是如何调用呢?将a.sh
更改以下
name="xiaoming"
age=3
将b.sh
修改成:
source 1.sh
echo "My name is $name, and i am $age years old"
运行效果:
重定向
输出重定向
先来看一下输出重定向,主要还是>
的使用例如:
ls > 1.txt
使用完命令后我们cat 1.txt
看看他的内容
运行截图:
如果想让在保留1.txt
文件原有内容上添加上输出内容,那么只需要使用>>
就好了,例如我们再运行一次who >> 1.txt
然后cat
一下就会发现两个命令的输出内容都在里面
输入重定向
不用键盘作为标准输入设备,而通过<
修改标准输入设备为指定的文件,这就是输入重定向的概念。假如你想同时查看几个目录名称,那么就可以通过输入重定向来完成
首先创建一个文本文件,这里用a.txt
来举例,在里面放上你想要查看的几个目录路径,这里用/var
、/home
来举例
a.txt
内容如下:
/home
/var
然后使用命令即可
xargs ls -l < a.txt
xargs
:这,它的主要作用是从标准输入(stdin)读取数据,并将这些数据作为参数传递给其他命令。它通常用于将一个命令的输出作为另一个命令的参数,以构建更复杂的命令序列。
文件描述符
0
:标准输入
1
:标准输出
2
:错误输出
举例:
ls >a.txt 2>1.txt
如果输出正确就到a.txt
中,输出错误就到1.txt
中