声明:学习视频来自b站up主 泷羽sec,如涉及侵权马上删除文章
感谢泷羽sec 团队的教学
视频地址:shell编程(完结)_哔哩哔哩_bilibili
一、不同脚本的相互调用
1.不同脚本的互相调用:
方法一: 创建一个脚本(例如6.sh),然后在另一个脚本(例如2.sh)中使用点(.)操作符来执行6.sh。这样,当你运行2.sh时,它会输出6.sh的内容。
方法二: 在2.sh中使用source 1.sh来调用1.sh脚本。这样,1.sh中的变量和命令都会在2.sh中生效。
2.脚本示例:
脚本1 (1.sh):
name="xiaoyu"
age=23
脚本2 (2.sh):
source 1.sh
echo "My name is $name, and I am $age years old"
当你运行2.sh时,它会输出:"My name is xiaoyu, and I am 23 years old"。
二、重定向
Shell脚本中的重定向操作是一种将命令的输出或输入从一个位置转移到另一个位置的方法。这在处理文件和命令输出时非常有用。
文件描述符:
0: 标准输入(stdin),通常用于接收输入。1: 标准输出(stdout),通常用于显示命令的输出结果。2: 错误输出(stderr),用于显示错误信息。
1.输出重定向(>):
将命令的输出发送到一个文件中。如果文件已存在,其内容将被覆盖。
ls > file.txt
将ls命令的输出(列出当前目录下的文件和文件夹)保存到file.txt中。
2.输出重定向并追加(>>):
将命令的输出追加到一个已存在的文件末尾,而不是覆盖它。
echo "Hello World" >> file.txt
将"Hello World"追加到file.txt的末尾。
3.输入重定向(<):
将文件的内容作为命令的输入。这通常用于需要从文件中读取数据的命令。
sort < file.txt
将file.txt中的内容进行排序。
4.错误输出重定向(2>):
将命令的错误输出发送到一个文件中。在Shell中,文件描述符2用于错误输出。
ls not_existing_file 2> error.txt
将尝试列出不存在的文件时的错误信息保存到error.txt中。
5.错误输出重定向并追加(2>>):
将错误输出追加到一个已存在的文件末尾。
ls not_existing_file 2>> error.txt
将错误信息追加到error.txt的末尾。
6.同时输出和错误输出重定向(&>):
将命令的标准输出和错误输出都发送到同一个文件中。
./your_script.sh &> output.txt
将脚本的标准输出和错误输出都保存到output.txt中。
7.Here Document(<<):
允许你将多行文本直接放入命令中,而不是从文件中读取。
cat << EOF
This is a multi-line string.
It will be passed to the command on the left.
EOF
这将把多行文本传递给cat命令。
8.Here String(<<<):
类似于Here Document,但是只接受单行文本。
read <<< "Hello World"
将"Hello World"作为输入传递给read命令。
9.组合输出
例子:
ls > 1.txt 2>2.txt
解释:
ls > 1.txt 2>2.txt: 这个命令尝试列出目录内容,并将标准输出重定向到1.txt,将错误输出重定向到2.txt。如果ls命令成功执行,其输出将被保存到1.txt中;如果出现错误,错误信息将被保存到2.txt中。
1072

被折叠的 条评论
为什么被折叠?



