欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > shell脚本(完结)

shell脚本(完结)

2025/12/13 18:55:50 来源:https://blog.csdn.net/aokaomo/article/details/144011473  浏览:    关键词:shell脚本(完结)

声明:学习视频来自b站up主 泷羽sec,如涉及侵权马上删除文章

感谢泷羽sec 团队的教学
视频地址:shell编程(完结)_哔哩哔哩_bilibili

本文主要讲解不同shell脚本中的相互调用以及输入输出重定向操作。

一、不同脚本之间的相互调用

在 Shell 脚本中,不同脚本之间的相互调用是一个常见的需求。以下是几种典型的调用方式及使用场景:

1.使用.命令调用

创建 1.sh

vim 1.sh

输入以下内容后保存:

echo "hello world!"

创建 2.sh

vim 2.sh

输入以下内容后保存:

. 1.sh

执行 2.sh

bash 2.sh
运行结果:
hello world!

2.使用source命令调用 

创建 3.sh

vim 3.sh

输入以下内容后保存:

echo "hello TOM!"

创建 4.sh

vim 4.sh

输入以下内容后保存:

source 3.sh

执行 4.sh

bash 4.sh
运行结果:
hello TOM!

3.变量之间的调用

创建 5.sh

vim 5.sh

输入以下内容后保存:

name="Bob"
age=22

创建 6.sh

vim 6.sh

输入以下内容后保存:

source 5.sh
echo "my name is $name and my age is $age years old"

执行 6.sh

bash 6.sh
运行结果:

 二、文本重定向

文本重定向是 Shell 中非常常用的功能,用于将命令的输出或输入从默认位置(如终端)重定向到文件或其他目标。以下是文本重定向的主要用法及示例:

文件描述符编号

文件描述符名称描述
0标准输入(stdin)默认从键盘读取输入,使用 < 重定向标准输入到文件。
1标准输出(stdout)默认将输出显示到终端,使用 >>> 将标准输出重定向到文件。
2标准错误(stderr)默认将错误消息显示到终端,使用 2>2>> 将错误输出重定向到文件。
1. 输出重定向(> 和 >>)
用法
  • >:将输出写入文件(覆盖模式)。
  • >>:将输出追加到文件末尾(追加模式)。
示例:
覆盖写入文件:
echo "hello world" > 1.sh
  • hello world 写入 1.sh,若文件已存在会被覆盖。
追加写入文件:
echo "good morning,Bob" >> 1.sh
  • good morning,Bob 追加到 1.sh 文件末尾。

2. 输入重定向(<)
用法:
  • <:从文件读取输入。
示例:
从文件中读取输入:

文件 1.txt 内容如下:

/root
/home

执行以下命令:

xargs ls -l < 1.txt

输出:

/home:
total 0
drwx------ 4 admin admin 110 Nov  5 16:26 admin
drwx------ 2 www   www    62 Nov  5 16:49 www/root:
total 62564
-rw-r--r--  1 root root       30 Nov 24 21:07 1.sh
-rw-r--r--  1 root root        0 Nov 22 23:08 1.txt
-rw-r--r--  1 root root        7 Nov 24 20:04 2.sh
-rw-r--r--  1 root root       20 Nov 24 20:28 3.sh
-rw-r--r--  1 root root       12 Nov 24 20:28 4.sh
-rw-r--r--  1 root root       18 Nov 24 20:32 5.sh
-rw-r--r--  1 root root       65 Nov 24 20:33 6.sh
-rw-r--r--  1 root root  2972450 Nov 17 00:44 7.0.0.tar.gz
-rw-r--r--  1 root root       97 Nov 23 02:48 a.sh
-rw-r--r--  1 root root 59383631 Aug 11  2023 docker-compose-linux-x86_64.1
-rw-r--r--  1 root root       63 Nov 23 02:24 f.sh
-rw-r--r--  1 root root      204 Nov 22 22:38 g.sh
-rw-r--r--  1 root root    49359 Nov  4 09:56 install.sh
-rw-r--r--  1 root root      319 Nov 23 00:26 k.sh
-rw-r--r--  1 root root      104 Nov 23 01:11 l.sh
drwxr-xr-x  5 root root       90 Nov  4 09:25 ProxyCat-main
-rw-r--r--  1 root root  1583662 Nov 18 19:50 ProxyCat.zip
drwxrwxr-x  8 root root     4096 Nov 17 02:04 redis-7.0.0
-rw-r--r--  1 root root      186 Nov 23 02:16 r.sh
-rw-r--r--  1 root root      103 Nov 23 01:59 t.sh
-rw-r--r--  1 root root       82 Nov 23 01:17 u.sh
drwxr-xr-x 12 root root     4096 Nov 21 19:01 vulfocus
-rw-r--r--  1 root root      553 Nov 22 23:27 y.sh
  • xargs 从标准输入读取内容(这里是 1.txt)。
  • 将读取到的内容作为参数传递给 ls -l,ls -l 会分别列出 /root 和 /home 目录的详细信息。

 3.错误重定向(2> 和 2>>)
用法:
  • 2>:将错误输出写入文件(覆盖模式)。
  • 2>>:将错误输出追加到文件末尾(追加模式)。
示例:
覆盖错误输出:
ggb 2> 1.txt
  • 错误命令的报错信息写入 1.txt,若文件已有内容在会被覆盖。
追加错误输出:
ggc 2>> 1.txt
  • 错误命令的报错信息追加到 1.txt

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com