Linux笔记之bash脚本中的-e、和

Linux笔记之bash脚本中的-e、&和&&

在这里插入图片描述

code review!

文章目录

  • Linux笔记之bash脚本中的-e、&和&&
    • 1.`&`和`&&`
    • 2.`-e`

1.&&&

在Linux bash脚本中,&符号有几个不同的用途,这里列举了一些常见的情况:

  1. 后台运行命令
    当你在命令的末尾加上&时,它会将该命令放入后台执行。这意味着你可以在该命令运行的同时,继续在同一个终端执行其他命令。例如:

    python script.py &
    ```上面的命令会在后台启动`script.py`脚本。
  2. 逻辑运算符
    ``&可以用作逻辑运算符,但更常见的是使用&&&&`用于连接两个命令,使得第二个命令只有在第一个命令成功执行(即退出状态为0)之后才会执行。

    command1 && command2
    ```单个`&`并不常用作逻辑运算符,因为它不会检查前一个命令的退出状态。
  3. 位运算
    在bash脚本中,&也可以用作位运算中的“按位与”操作符。例如:

    ((result=var1 & var2))
    ```上面的命令会计算`var1``var2`的按位与结果,并将其赋值给`result`。
  4. Job Control
    在bash中,&也与作业控制相关。你可以使用jobs命令查看后台运行的作业列表,使用fg命令将后台作业带到前台,或使用bg命令继续在后台运行暂停的作业。

    jobs # 列出作业
    fg %1 # 将作业号为1的作业带到前台
    bg %1 # 将作业号为1的作业继续在后台运行
    ```
  5. 文件描述符
    在高级脚本编写中,&还可以用于文件描述符的重定向。例如,2>&1会将标准错误(文件描述符2)重定向到标准输出(文件描述符1)。

    command > output.txt 2>&1
    ```上面的命令将命令的标准输出和标准错误都重定向到`output.txt`文件中。

根据上下文,&的含义可能会有很大的不同。在编写脚本时,确保你清楚地知道每个&的作用,以避免混淆和潜在的错误。

2.-e

在Linux bash脚本中,-e通常与echo命令或test/[命令一起使用,它们的含义和用途不同。

  1. echo命令中的-e选项

    当在echo命令中使用-e选项时,它使得echo能够解释由反斜杠\转义的字符。例如:

    echo -e "Line 1\nLine 2"
    ```上面的命令会输出两行文本,"\n"被解释为换行符。
  2. test/[命令中的-e选项

    test或其别名[命令中,-e用来检查文件或目录是否存在。如果指定的文件或目录存在,则表达式返回真(退出状态为0)。例如:

    if [ -e /path/to/file ]; thenecho "File exists."
    elseecho "File does not exist."
    fi
    ```上面的脚本片段检查`/path/to/file`是否存在,并打印相应的消息。

确保在使用-e时注意上下文,因为在不同的命令中它的含义是完全不同的。

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

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

相关文章

js中的内置对象、数学对象、日期对象、数组对象、字符串对象

js中的对象(三种): 自定义对象 car、computer DOM对象 div、p BOM对象 window、console 内置对象 数学对象 Math (object类型) 1、圆周率 Math.PI 2、向下取整(返回值) Math.floor() 3、向上取整(返回值) M…

年少不知 Base 好,错把总包当成宝。。

今天聊一个很现实的话题:选 offer 对比薪资时,我强烈建议以 Base 为主,而不是总包。 为什么?且听鱼皮娓娓道来。 注意,以下为个人观点,仅供参考! 首先明确 Base 和总包的概念: Base&…

某马头条——day11+day12

实时计算和定时计算 流式计算 kafkaStream 入门案例 导入依赖 <dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-streams</artifactId><exclusions><exclusion><artifactId>connect-json</artifactId&…

美,英,法,德、意大利和西班牙的geojson,以及区域json

美&#xff0c;英&#xff0c;法&#xff0c;德、意大利和西班牙的geojson文件 json地址 https://pan.baidu.com/s/1nio1bV_j-jAEVqgEHXWsNw?pwdqwer#list/path/GEOJSON 感谢大佬提供的 大佬连接 大佬的知乎原地址 国内geojson获取工具地址 http://da![在这里插入图片描述](h…

【江科大】STM32:I2C通信外设(硬件)

在将2C通信外设之前&#xff0c;我们先捋一捋&#xff0c;串口的相关特点来和I2C进行一个对北比。 首先&#xff1a; 1,大部分单片机&#xff0c;设计的PCB板均带有串口通信的引脚&#xff08;也就是通信基本都借助硬件收发器来实现&#xff09; 2.对于串口的异步时序&#xff…

韩国访问学者申请注意事项

随着国际交流的增加&#xff0c;韩国成为许多学者追求学术深造的热门目的地之一。如果你计划成为一名韩国访问学者&#xff0c;以下是知识人网小编整理的一些需要注意的事项&#xff0c;以确保你的申请顺利进行。 1.详细了解目标学府&#xff1a;在开始申请之前&#xff0c;仔细…

Python进阶——文件及IO操作

一、文件的基本操作 创建文件对象和打开文件对象&#xff1a;open() def my_write():#(1)打开&#xff08;创建&#xff09;文件fileopen(Myqq.txt,w,encodingutf-8) #如果文件不存在&#xff0c;则在当前目录下创建一个文件名字为Myqq.txt#&#xff08;2&#xff09;操作文件f…

redis整合

一.redis的发布订阅 什么 是发布和订阅 Redis 发布订阅 (pub/sub) 是一种消息通信模式&#xff1a;发送者 (pub) 发送消息&#xff0c;订阅者 (sub) 接收消息。 Redis 客户端可以订阅任意数量的频道。 1、Redis的发布和订阅 客户端订阅频道发布的消息 频道发布消息 订阅者就可以…

matlab绘图杂谈-stem函数和plot函数

出发点 今天在论文中看到一副这样的图&#xff0c;它既有曲线&#xff0c;又有点&#xff0c;并且对两者都添加了图例。三条曲线应该是用plot函数绘制的&#xff0c;而target哪个绿色的圆圈&#xff0c;我的理解是用stem函数绘制的。它只是1个点&#xff0c;并且没有竖线&…

Linux文件管理技术实践

shell shell的种类(了解) shell是用于和Linux内核进行交互的一个程序&#xff0c;他的功能和window系统下的cmd是一样的。而且shell的种类也有很多常见的有c shell、bash shell、Korn shell等等。而本文就是使用Linux最常见的bash shell对Linux常见指令展开探讨。 内置shell…

ElasticSearch搜索引擎入门到精通

ES 是基于 Lucene 的全文检索引擎,它会对数据进行分词后保存索引,擅长管理大量的数据,相对于 MySQL 来说不擅长经常更新数据及关联查询。这篇文章就是为了进一步了解一下它,到底是如何做到这么高效的查询的。 在学习其他数据库的时候我们知道索引是一个数据库系统极其重要…

【基础配置】Python2/Python3并存安装配置教程

Nx01 产品简介 Python是一种高级的、解释型的、面向对象的通用编程语言&#xff0c;具有简单易学、代码可读性强、功能强大、可移植性好等特点。它可以应用于多种领域&#xff0c;如Web开发、数据科学、人工智能、机器学习、科学计算、自动化测试等。Python由Guido van Rossum于…

如何使用phpStudy软件测试本地PHP及环境搭建

各位同学朋友们大家好&#xff01;我是咕噜铁蛋&#xff01;我们经常需要在本地进行PHP代码的开发和测试。而phpStudy作为一个集成了Apache、MySQL和PHP的软件套装&#xff0c;提供了方便快捷的环境搭建和测试工具。今天铁蛋为大家详细介绍如何使用phpStudy来测试本地PHP及环境…

雨云服务器部署幻兽帕鲁PalWorld联机服务器详细教程

幻兽帕鲁是Pocketpair开发的一款开放世界生存制作游戏&#xff0c;游戏中&#xff0c;玩家可以在广阔的世界中收集神奇的生物“帕鲁”&#xff0c;派他们进行战斗、建造、做农活&#xff0c;工业生产等。 最近&#xff0c;这款游戏挺火&#xff0c;为了获得更好的游戏体验&…

Vue构建项目断点调试过程问题总结

Vue构建项目断点调试过程问题总结 问题背景 前端开发过程中&#xff0c;碰到问题时需要debug&#xff0c;快速分析和解决问题。一般除了console.log的方式打印日志外&#xff0c;更方便直观的方式就是打断点debug。本文对vue项目debug过程可能碰到的问题进行总结&#xff0c;…

“数据同步大揭秘:Canal工具如何让实时处理变得轻而易举?“

介绍&#xff1a;Canal是一个基于MySQL数据库增量日志解析的开源数据同步工具。 Canal的主要功能是提供增量数据订阅和消费&#xff0c;它通过解析MySQL数据库的增量日志来捕获数据变更事件&#xff0c;并将这些事件转换成数据变更流&#xff0c;供用户订阅和消费。这样&#x…

Deepin基本环境查看(四)【硬盘/分区、文件系统、硬连接/软连接】

Linux操作系统(Deepin、Ubuntu&#xff09;操作系统中&#xff0c;硬盘分区的管理与Windows操作系统不同&#xff1b; 在Linux系统中维护着一个统一的文件目录体系&#xff0c;而硬盘和分区是以资源的形式由操作系统挂接和调度&#xff1b;此外Linux系统中连接&#xff08;硬连…

NTFS 磁盘管理 :NTFS Disk by Omi NTFS

NTFS Disk by Omi NTFS是一款专为Mac系统设计的NTFS文件系统读写解决方案的工具。它可以帮助Mac用户方便地访问和管理NTFS格式的硬盘、U盘、移动硬盘以及其他存储设备&#xff0c;提供高效稳定的NTFS卷管理功能。 NTFS 磁盘管理 &#xff1a;NTFS Disk by Omi NTFS 该软件的主…

Mistral AI vs. Meta:顶级开源LLM比较

为了提高性能&#xff0c;大型语言模型(llm)通常会通过增加模型大小的方法来实现这个目标&#xff0c;但是模型大小的增加也增加了计算成本和推理延迟&#xff0c;增加了在实际场景中部署和使用llm的障碍。 Mistral AI是一家总部位于巴黎的欧洲公司&#xff0c;一直在研究如何…

QT入门篇---无门槛学习

1.1 什么是 Qt Qt 是⼀个 跨平台的 C 图形⽤⼾界⾯应⽤程序框架 。它为应⽤程序开发者提供了建⽴艺术级图形界⾯所需的所有功能。它是完全⾯向对象的&#xff0c;很容易扩展。Qt 为开发者提供了⼀种基于组件的开发模式&#xff0c;开发者可以通过简单的拖拽和组合来实现复杂的…