声明:
学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!有兴趣的小伙伴可以点击下面连接进入b站主页B站泷羽sec
泷羽sec的个人空间-泷羽sec个人主页-哔哩哔哩视频
————————————————
不同脚本的互相调用
方法一:
首先使用rm *.sh 删掉所有shell脚本(注意,不要误删了自己的重要文件)
然后vim 1.sh 写入echo "hello world"
再创建一个2.sh脚本文件,写入. 1.sh
bash执行2.sh
你会发现输出了1.sh的内容
方法二:
创建的2.sh脚本文件,写入的是. 1.sh
我们可以把. 1.sh修改为source 1.sh
总结:
- 命令
rm *.sh
用于删除当前目录下所有以.sh
为扩展名的文件。这一步是为了确保环境干净,没有其他干扰的 shell 脚本。不过使用这个命令时要特别小心,因为一旦执行,所有符合条件的文件将被立即删除且无法恢复,如果误删了重要文件会造成损失。 - 创建
2.sh
脚本文件,并在其中写入. 1.sh
。在shell
脚本中,.
命令(或者source
命令)用于在当前shell
环境中执行另一个脚本文件。这里就是在2.sh
执行时会调用并执行1.sh
。 - 当在
2.sh
中使用. 1.sh
(或source 1.sh
)时,它会在当前shell
进程中读取和执行1.sh
的内容。这与直接执行bash 1.sh
有区别。直接执行bash 1.sh
会开启一个新的shell
子进程来执行1.sh
,而source
操作是在当前shell
进程内执行,这样如果1.sh
中定义了变量等操作,这些变量在当前shell
环境中会保留下来(如果是bash 1.sh
执行,变量在子进程结束后就消失了)
这种脚本间的调用方式在很多场景下都很有用,比如当需要在一个脚本中复用另一个脚本的函数、变量或初始化操作时,可以采用这种方法。
实例:
vim 3.sh写入
name="icetea"
age=21
vim 2.sh写入
source 3.sh
echo "My name is $name and i am $age"
然后bash 2.sh执行脚本
重定向操作
重定向的基本概念
- 在 Linux 中,重定向是一种将命令的输入、输出或错误信息发送到不同位置的机制。常见的重定向操作符有:
>
:用于将命令的标准输出重定向到一个文件。如果文件不存在,会创建新文件;如果文件存在,会覆盖原有内容。>>
:将标准输出重定向到一个文件,但不会覆盖原有内容,而是追加到文件末尾。<
:用于将文件内容作为命令的输入。2>
:用于将命令的错误输出重定向到一个文件。&>
:将标准输出和错误输出都重定向到一个文件。
输出重定向
例1:
ls >1.txt
cat 1.txt
例2:
who >1.txt
cat 1.txt
例3:
ls >>1.txt
cat 1.txt
例4:把ls 命令重定向到垃圾桶回收站,执行后,ls没有回显
ls > /dev/null
输入重定向
例1:
/home/kali/图片
/home/kali/音乐
( 这段路径因人而异,需要根据自己的路径来写)
例2:
输出重定向和输出重定向区别
文件描述符
例1:
如果ls命令正确,内容输入到1.txt,如果错误,则把错误信息输出到2.txt
ls > 1.txt 2> 2.txt
查看1.txt
cat 1.txt
coo是不存在的指令,会把错误信息输出到2.txt
coo > 1.txt 2> 2.txt
查看2.txt
cat 2.txt