SHELL脚本之重定向符号的使用。

一.shell脚本(对应完成某一个功能的命令熟悉与否,决定着shell脚本的熟练与否。)

一个shell脚本就是一个普通的文本文件。

作用:将重复执行的操作写成脚本,自动执行。

二.Linux操作系统中重定向符号的使用。

类型:

输出重定向符号

输入重定向符号

命令在屏幕上面所显示的正常结果,这些显示的正常结果都是标准输出。

如上图所示,这样的报错,正常来讲就是标准错误输出。

1.输出重定向(方便我们使用脚本来新建文件,可以重定向命令的输出信息。)

可以将原来应该显示在屏幕上的输出结果,重定向到其他文件中。使得命令输出结果不显示在显示器上。

1.1   >

不仅能将命令所产生的标准输出重定向到文件中,还可以直接用来编写文件内容。

如上图所示,错误的标准错误输出不能重定向到文件中,

vim编辑器在脚本中是不能用的,如果脚本中存在着使用vim 编辑器去编辑脚本的操作,

那么当这个脚本执行到vim操作时,就会直接停到编辑脚本的操作。如此脚本的自动化执行操作便失去了意义。

如上图所示,就是相当于在/tmp/创建了一个file02文件并且利用输出重定向符号,在这个文件中编写相应的内容。

如上图所示,这就是在利用重定向符号在不删除文件的前提下,去清空文件内的数据。

1.2    >>(仅能重定向标准输出。)

>代表的意思是覆盖,>>代表的意思是追加。

如上图所示,原来的abc被>符号用123给覆盖了。

如上图所示,>>表示的意思是追加内容到文件中。

2.1   2>

仅重定向标准错误信息。

如上图所示,在编写脚本的时候,可以将标准输出错误,重定向到错误日志中。进而分析那里出错了,将出的错收集起来避免以后再犯。

3.1  &>

这个重定向符号可以重定向正确输出信息和错误输出信息。

但是当我使用重定向符号将输出信息存入到文件中的时候,都是直接将数据报错到硬盘中,长此以往会占据硬盘空间,对于不重要的屏幕输出信息可以重定向到/dev/null这个黑洞文件中,这样就不会占据硬盘空间。

2.输入重定向符号

<   最常用

作用:可以把一个文件的内容作为参数传递给命令

可以把一个文件的内容当成我们的键盘来使用,

在shell脚本中有可能需要我们写一些交互式命令,如果这些交互式命令直接写到shell脚本中,那么这个shell脚本也会失去自动执行的意义。

如上图所示,比如这个passwd命令,当这个命令出现的时候,需要我们用户去输入相应的内容,这个命令才会结束,我们才可以去做其他的操作,否则这个页面就卡在这里了。

如上图所示,这个命令也是一个交互式命令,

一旦直接将交互式命令写到脚本中,这个脚本就会失去自带执行的能力,

所以我们需要以另外的方式去在shell脚本中编写交互式命令。

事先我们可以把需要输入到交互式命令的数据,存放到一个文件中,当这个脚本中需要我们往交互式命令中填写数据的时候,直接利用输入重定向符号,代替用户在键盘上的操作。

如上图所示,这也是一个交互式命令,将我们输入的字符串到改写成大写的字符串。

此时我们可以预先把需要转换成大写字符串的数据,存放到文件中,然后在shell脚本中使用输入重定向符号,将文件中的内容当成键盘上的输入操作,

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ESP32接入扣子(Coze) API使用自定义智能体

使用ESP32接入Coze API实现聊天机器人的教程 本示例将使用ESP32开发板通过WiFi接入 Coze API&#xff0c;实现一个简单的聊天机器人功能。用户可以通过串口向机器人输入问题&#xff0c;ESP32将通过Coze API与智能体进行通信&#xff0c;并返回对应的回复。本文将详细介绍了如…

selenium有多个frame页时的操作方法(5)

之前文章我们提到&#xff0c;在webdriver.WebDriver类有一个switch_to方法&#xff0c;通过switch_to.frame()可以切换到不同的frame页然后才再定位某个元素做一些输入/点击等操作。 比如下面这个测试网站有2个frame页&#xff1a;http://www.sahitest.com/demo/framesTest.h…

wordpress 子比主题美化 四宫格 多宫格 布局插件

wordpress 主题美化 四宫格 多宫格 布局插件&#xff08;只在子比主题上测试过&#xff0c;其它主题没测试&#xff09; A5资源网四宫格布局插件是一个功能丰富的WordPress插件,专为创建自适应的四宫格布局而设计。这个插件具有以下主要特点: 灵活的布局: 支持1到8个宫格的自定…

如何设置 GitLab 密码长度?

GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署极狐GitLab。 学习极狐GitLab 的相关资料&#xff1a; 极狐GitLab 60天专业…

星海智算:【RVC】无需部署一键启动

镜像介绍 RVC全称 Retrieval-based-Voice-Conversion-WebUI 简称 RVC 一个基于VITS的简单易用的语音转换&#xff08;变声器&#xff09;框架 RVC 是一款前沿的音色替换项目&#xff0c;可以进行歌曲的翻唱&#xff0c;和实时的变声&#xff0c;具有低延迟、优秀的变声效果、…

【可答疑】基于51单片机的自动烘手器(含仿真、代码、报告、演示视频等)

✨哈喽大家好&#xff0c;这里是每天一杯冰美式oh&#xff0c;985电子本硕&#xff0c;大厂嵌入式在职0.3年&#xff0c;业余时间做做单片机小项目&#xff0c;有需要也可以提供就业指导&#xff08;免费&#xff09;~ &#x1f431;‍&#x1f409;这是51单片机毕业设计100篇…

C++ 算法学习——1.8 快速幂算法

背景知识&#xff1a; 1.位运算 在C中&#xff0c;位运算是对整数类型的位进行操作的一种运算方式。常见的位运算符包括按位与&#xff08;&&#xff09;、按位或&#xff08;|&#xff09;、按位异或&#xff08;^&#xff09;、取反&#xff08;~&#xff09;、左移&am…

芯课堂 | Synwit_UI_Creator(μgui)平台之图像处理篇

今天小编给大家介绍的是UI_Creator&#xff08;μgui&#xff09;平台下关于图像处理的选项。 UI_Creator&#xff08;μgui&#xff09;平台图片类控件有图像控件和分级图像控件&#xff0c;均包含以下选项&#xff1a; 1、消除水波纹&#xff1a; 由于16位真彩色&#xff08…

基础IO -- 理解文件(1)

目录 一&#xff1a;回顾文件 二&#xff1a;加深对文件的理解 1.概念 2.以w写方式打开 3.以a追加方式打开 4.重定向 一&#xff1a;回顾文件 以前学习过在C语言中的文件操作&#xff0c; 但那根本是不足以理解文件的&#xff0c;即站在语言角度是不可能理解文件的 我们要…

QT 中如何保存matlab 能打开的.mat数据矩阵!

Windows 上安装并使用 MATIO 库来保存 MATLAB 格式的 .mat 文件&#xff0c;需要进行以下步骤&#xff1a; 1. 下载并安装 CMake MATIO 使用 CMake 构建项目&#xff0c;因此你需要先安装 CMake。 前往 CMake 官网下载适用于 Windows 的安装程序并安装。 2. 下载 MATIO 库源…

说下SSL/TLS四次握手过程?

参考自&#xff1a;SSL/TLS四次握手过程是怎么样的&#xff1f;HTTPS、SSL、TLS三者之间的联系和区别 一.SSL/TLS 简介 SSL(Secure Socket Layer 安全套接层)是基于 HTTPS 下的一个协议加密层&#xff0c;用于解决 HTTP 在传输数据时使用明文而导致的不安全问题。 SSL 是 HT…

AD报错failed to add class member\net

什么原因导致的我到现在还没弄懂&#xff0c;总之解决方法是在PCB端删除所有现有的并且可删除的nets与components。下次问题复现了再补充截图&#xff08;不想再遇到了球球了这种玄学问题&#xff09;。 网络截图&#xff1a; 解决步骤&#xff1a;设计->类 把可删除的网络…

西门子828d的plc一些信息记录

1、虽然是200的plc但是引入了DB的形式替代原来的V存储区。 2、用户自定义DB块范围&#xff0c;DB9000-DB9063,共64个DB块。 可用地址范围如上图 机床MCP483面板地址表&#xff0c;其它类型的面板地址自己在828d简明调试手册里查看。 如何上载828d的plc程序&#xff1a; 1.通…

coze bot开发的最小实践

一、coze专业版开通 网站地址&#xff1a;扣子专业版-火山引擎 开通流程&#xff1a; 1."立即使用" 扣子专业版 1.点击【立即使用】2.登录账号(上一步已登录可跳过) 2.进行实名认证后&#xff0c;开启【扣子专业版】&#xff08;已认证可跳过&#xff09; 1. 前…

Mysql行转列的写法

一、何为行转列&#xff1f; 在搞清楚这一概率之前&#xff0c;不妨来认识一下我们mysql表二维表结构数据&#xff0c;例如学生成绩表格&#xff0c;属性有学生姓名&#xff0c;学生科目&#xff0c;成绩&#xff0c;表结构如下&#xff1a; CREATE TABLE test_9 (id int(11) …

Android map 获取值

Android Map 获取值的完整指南 在Android开发中&#xff0c;使用Map&#xff08;映射&#xff09;来存储和检索数据是非常常见的需求。Map是一种键值对集合&#xff0c;能够快速而高效地根据特定的键获取值。在这篇文章中&#xff0c;我们将深入探讨如何在Android应用中使用Ma…

Linux的zookeeper安装部署

1.zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,是hadoop和HBASE的重要组件 2.下载zookeeper安装包zookeeper安装包https://archive.apache.org/dist/zookeeper/zookeeper-3.5.9/ 移动到Linux解压 解压到/export/server文件夹 命令: tar -xvf apache-zooke…

AI大模型:生产中的RAG,为何表现不尽如人意?

RAG&#xff08;Retrieval Augmented Generation,检索增强生成&#xff09;是一个将大规模语言模型(LLM)与来自外部知识源的检索相结合的框架,以改进问答能力的工程框架。虽然一切都看起来很美好&#xff0c;在实际应用中&#xff0c;RAG的状态确是“一看就会&#xff0c;一用就…

【Linux】嵌入式Linux系统的组成、u-boot编译

Linux—嵌入式Linux系统的组成、u-boot编译 前言一、嵌入式Linux系统的组成1.1 嵌入式Linux系统和PC完整的操作系统的对比如下&#xff1a;1.2 PC机—Windows系统启动流程&#xff08;PC机—Linux系统、嵌入式ARM—linux系统的启动流程类似&#xff09; 二、编译u-boot2.1 u-bo…

内核定时器API实现点灯

1.内核定时器 定时器是一个很常用的功能&#xff0c;需要周期性处理的工作都要用到定时器。 Linux 内核定时器 采用系统时钟来实现&#xff0c;并不是6ull里面的硬件定时器。 Linux 内核定时器使用很简单&#xff0c;只需要提供超时时间(相当于定时值)和定时处理函数即…