shell脚本(完结)

news2024/11/25 9:14:53

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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2247195.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

禁用达梦DEM的agent

agent占用内存较多&#xff0c;实际没什么使用&#xff0c;考虑停止agent 应该切换到root执行停止 cd /dm/dmdbms/tool/dmagent/service/ ./DmAgentService stop禁用

使用ChatGPT生成和优化电子商务用户需求规格说明书

在电子商务项目开发中&#xff0c;用户需求规格说明书&#xff08;User Requirement Specification, URS&#xff09;是团队沟通与项目成功的基石。然而&#xff0c;面对复杂多变的需求&#xff0c;如何快速生成清晰、完整且具备说服力的文档&#xff1f;这正是AI工具的用武之地…

产品研发管理和研发项目管理的区别是什么

产品研发管理与研发项目管理有显著的区别&#xff0c;主要体现在管理范围、目标导向和执行方法上。产品研发管理侧重于产品生命周期的规划与执行&#xff0c;强调产品的创新性和市场需求对接&#xff0c;而研发项目管理则更注重具体项目的执行过程&#xff0c;聚焦项目时间、成…

摆烂仙君传——深度学习秘境奇缘

第一章&#xff1a;深度学习秘境 在修仙界与科技交织的边缘&#xff0c;八荒六合九天无上摆烂仙君在其高科技修炼室中感应到一股神秘的召唤。这股力量似乎与他的灵魂产生了共鸣&#xff0c;引导他前往传说中的深度学习秘境。在那里&#xff0c;古老的仙法与前沿的算法交织&…

【FPGA开发】Vivado自定义封装IP核,绑定总线

支持单个文件的封装、整个工程的封装&#xff0c;这里用单个文件举例。 在文件工程目录下&#xff0c;自建一个文件夹&#xff0c;里面放上需要封装的verilog文件。 选择第三个&#xff0c;指定路径封装&#xff0c;找到文件所在目录 取个名&#xff0c;选择封装IP的路径 会…

【CS61A 2024秋】Python入门课,全过程记录P2(Week3开始,更新中2024/11/24)

文章目录 关于基本介绍&#x1f44b;Week 3Mon Environments阅读材料Lab 02: Higher-Order Functions, Lambda ExpressionsQ1: WWPD: The Truth Will PrevailQ2: WWPD: Higher-Order FunctionsQ3: WWPD: Lambda 关于 个人博客&#xff0c;里面偶尔更新&#xff0c;最近比较忙。…

在Linux下配置gitee与Github的远程仓库

目录 前言 云服务器下载git 检测是否下载成功git Linux下配置gitee远程仓库 代码提交演示 git三板斧 Linux下配置Github远程仓库 最后的提醒 前言 那么本篇文章将是在&#xff0c;你已经创建了本地仓库的基础上&#xff0c;在Linux下配置gitee的远程仓库的步骤&#xff…

Mac配置maven环境及在IDEA中配置Maven

Mac配置maven环境及在IDEA中配置Maven 1. 介绍 Maven是一款广泛用于Java等JVM语言项目的工具&#xff0c;它以项目对象模型&#xff08;POM&#xff09;为基础进行项目管理&#xff0c;通过POM文件来定义项目信息和依赖关系。同时&#xff0c;它也是构建自动化工具&#xff0…

硬中断关闭后的堆栈抓取方法

一、背景 性能和稳定性是一个计算机工程里的一个永恒的主题。其中尤其稳定性这块的问题发现和问题分析及问题解决就依赖合适的对系统的观测的手段&#xff0c;帮助我们发现问题&#xff0c;识别问题原因最后才能解决问题。稳定性问题里尤其底层问题里&#xff0c;除了panic问题…

STL关联式容器之hashtable

hashtable的桶子与节点 下图为开链法(separate chaining)完成hashtable的图形表述。为了剖析SGI STL源码&#xff0c;我们遵循SGI的命名&#xff0c;称hash table表格内的元素为桶(bucket),此名称的大约意义是&#xff0c;表格内的每个单元&#xff0c;涵盖的不只是个节点(元素…

基于python的长津湖评论数据分析与可视化,使用是svm情感分析建模

引言 研究背景及意义 上世纪初开始&#xff0c;中国电影就以自己独有的姿态登上了世界电影史的舞台。中国电影作为国家文化和思想观念的反映与延伸&#xff0c;能够增强文化自信&#xff0c;在文化输出方面有着极其重要的作用1[1]。 改革开放以来&#xff0c;随着生产力的提高…

阿里云oss转发上线-实现不出网钓鱼

本地实现阿里云oss转发上线&#xff0c;全部代码在文末&#xff0c;代码存在冗余 实战环境 被钓鱼机器不出网只可访问内部网络包含集团oss 实战思路 若将我们的shellcode文件上传到集团oss上仍无法上线&#xff0c;那么就利用oss做中转使用本地转发进行上线&#xff0c;先发送…

预测未来 | MATLAB实现Transformer时间序列预测未来

预测未来 | MATLAB实现Transformer时间序列预测未来 预测效果 基本介绍 1.Matlab实现Transformer时间序列预测未来&#xff1b; 2.运行环境Matlab2023b及以上&#xff0c;data为数据集&#xff0c;单变量时间序列预测&#xff1b; 3.递归预测未来数据&#xff0c;可以控制预…

局域网与广域网:探索网络的规模与奥秘(3/10)

一、局域网的特点 局域网覆盖有限的地理范围&#xff0c;通常在几公里以内&#xff0c;具有实现资源共享、服务共享、维护简单、组网开销低等特点&#xff0c;主要传输介质为双绞线&#xff0c;并使用少量的光纤。 局域网一般是方圆几千米以内的区域网络&#xff0c;其特点丰富…

可视化建模与UML《协作图实验报告》

有些鸟儿毕竟是关不住的。 一、实验目的&#xff1a; 1、熟悉协作图的构件事物。 2、掌握协作图的绘制方法。 二、实验环境&#xff1a; window7 | 10 | 11 EA15 三、实验内容&#xff1a; 下面列出了打印文件时的工作流&#xff1a; 用户通过计算机指定要打印的文件。(2)打…

docker搭建私有的仓库

docker搭建私有仓库 一、为什么要搭建私有的仓库&#xff1f; 因为在国内&#xff0c;访问&#xff1a;https://hub.docker.com/ 会出现无法访问页面。。。。&#xff08;已经使用了魔法&#xff09; 当然现在也有一些国内的镜像管理网站&#xff0c;比如网易云镜像服务、Dao…

微信小程序条件渲染与列表渲染的全面教程

微信小程序条件渲染与列表渲染的全面教程 引言 在微信小程序的开发中,条件渲染和列表渲染是构建动态用户界面的重要技术。通过条件渲染,我们可以根据不同的状态展示不同的内容,而列表渲染则使得我们能够高效地展示一组数据。本文将详细讲解这两种渲染方式的用法,结合实例…

订单日记为“惠采科技”提供全方位的进销存管理支持

感谢温州惠采科技有限责任公司选择使用订单日记&#xff01; 温州惠采科技有限责任公司&#xff0c;成立于2024年&#xff0c;位于浙江省温州市&#xff0c;是一家以从事销售电气辅材为主的企业。 在业务不断壮大的过程中&#xff0c;想使用一种既能提升运营效率又能节省成本…

mysql-分析并解决可重复读隔离级别发生的删除幻读问题

在 MySQL 的 InnoDB 存储引擎中&#xff0c;快照读和当前读的行为会影响事务的一致性。让我们详细分析一下隔离级别味可重复读的情况下如何解决删除带来的幻读。 场景描述 假设有一个表 orders&#xff0c;其中包含以下数据&#xff1a; 事务 A 执行快照读 START TRANSACTION…

使用itextpdf进行pdf模版填充中文文本时部分字不显示问题

在网上找了很多种办法 都解决不了; 最后发现是文本域字体设置出了问题; 在这不展示其他的代码 只展示重要代码; 1 引入扩展包 <dependency><groupId>com.itextpdf</groupId><artifactId>itext-asian</artifactId><version>5.2.0</v…