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 ]; then
      echo "File exists."
    else
      echo "File does not exist."
    fi
    ```
    
    上面的脚本片段检查`/path/to/file`是否存在,并打印相应的消息。
    
    

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

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

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

相关文章

文件IO讲解

💕"跑起来就有意义"💕 作者:Mylvzi 文章主要内容:文件IO讲解 一.与文件相关的基本概念 1.什么是文件 文件从广义上来说就是操作系统对其所持有的硬件设备和软件资源的抽象化表示,但是在日常生活中我们所提到的文件就…

三、Kotlin 类型初步

1. 类 & 接口 1.1 类的定义 1.1.1 空类的定义 Java 的定义: public class Foo {}Kotlin 的定义: class Foo注意: 类的访问权限修饰符默认为 public。 若类的 {} 为空,可以省略不写。 1.1.2 带成员的类的定义 Java 中定…

普通人如何打造自己人生的护城河?

哈喽,大家好啊,我是雷工。 今天在看《张一鸣管理日志》时看到这么一句话: 今日头条不断吸引更优秀的工程师,不断更新算法,才有了当前今日头条的算法护城河。 头条的算法有多牛,看你周边就知道了。 越来越多…

《剑指 Offer》专项突破版 - 面试题 28 : 展平多级双向链表(C++ 实现)

题目连接:LCR 028. 扁平化多级双向链表 - 力扣(LeetCode) 题目: 在一个多级双向链表中,节点除了有两个指针分别指向前后两个节点,还有一个指针指向它的子链表,并且子链表也是一个双向链表&…

CentOS7自动备份数据库到git

虽然数据库没什么数据,但是有就是珍贵的啦,为了服务器什么的无了,所以还是要自动备份一下比较好。 Open备忘第一页 步骤 在Gitee(github)上创建一个私有仓库Gitee(github)配置好服务器的ssh在服…

获取双异步返回值时,如何保证主线程不阻塞?

目录 一、前情提要二、JDK8的CompletableFuture1、ForkJoinPool2、从ForkJoinPool和ThreadPoolExecutor探索CompletableFuture和Future的区别 三、通过CompletableFuture优化 “通过Future获取异步返回值”1、通过Future获取异步返回值关键代码(1)将异步…

k8s的图形化工具--rancher

什么是rancher? rancher是一个开源的企业级多集群的k8s管理平台 rancher和k8s的区别 都是为了容器的调度和编排系统,但是rancher不仅能够调度,还能管理k8s集群,自带监控(普罗米修斯) 实验部署 实验架构…

大语言模型推理提速:TensorRT-LLM 高性能推理实践

作者:顾静 TensorRT-LLM 如何提升 LLM 模型推理效率 大型语言模型(Large language models,LLM)是基于大量数据进行预训练的超大型深度学习模型。底层转换器是一组神经网络,这些神经网络由具有 self-attention 的编码器和解码器组…

基于Java+SpringMvc+vue+element实现上海汽车博物馆平台

基于JavaSpringMvcvueelement实现上海汽车博物馆平台 🍅 作者主页 央顺技术团队 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 🍅 查看下方微信号获取联系方式 承接各种定制系统 …

《Visual Tree Convolutional Neural Network in Image Classification》阅读笔记

论文标题 《Visual Tree Convolutional Neural Network in Image Classification》 图像分类中的视觉树卷积神经网络 作者 Yuntao Liu、Yong Dou、Ruochun Jin 和 Peng Qiao 来自国防科技大学并行和分布式处理国家实验室 初读 摘要 问题: 在图像分类领域&…

JCL中常用的DD语句

JCL中的DD语句介绍 ​ DD语句,主要定义数据集用的,也叫做DATASET DEFINE,分为定义设备的UNIT、VOLUME、SPACE,定义数据集的DSN、DISP、DCB,详细可以看英文版的《MVS JCL Reference》,还有一些特殊的DD,暂时…

hdu1195 Open the lock 双向广度优先搜索

D-BFS 双向广度优先搜索 从起点和终点同时开始搜索&#xff0c;直到两个搜索的点相交&#xff0c;得到最短路径 Code: // D-BFS //by:MuQY #include <iostream> #include <algorithm> #include <string.h> #include <queue> #include <string> …

redis + 拦截器 :防止数据重复提交

1.项目用到,不是核心 我们干系统开发,不免要考虑一个点&#xff0c;数据的重复提交。 我想我们之前如果要校验数据重复提交要求&#xff0c;会怎么干?会在业务层&#xff0c;对数据库操作&#xff0c;查询数据是否存在,存在就禁止插入数据; 但是吧,我们每次crud操作都会连接…

Conda 使用environment.yml创建一个新的Python项目

Conda系列&#xff1a; 翻译: Anaconda 与 miniconda的区别Miniconda介绍以及安装Conda python运行的包和环境管理 入门Conda python管理环境environments 一 从入门到精通Conda python管理环境environments 二 从入门到精通Conda python管理环境environments 三 从入门到精通…

luceda ipkiss教程 58:输出器件的版图和三维模型

在ipkiss中&#xff0c;通过visualize_3d_povray可以输出包含器件的三维模型参数的.pov文件&#xff0c;再通过POV-Ray&#xff08;免费软件&#xff0c;下载地址&#xff1a;https://www.povray.org/download/&#xff09;就可以查看器件的三维模型。 如&#xff1a; 代码如…

账号定位基础

1.账号定位流程 定位体系 &#xff08;1&#xff09;商业定位 ①商业定位-带货 ②商业定位-引流 ③商业定位-接广告 ④商业定位-直播打赏 &#xff08;2&#xff09;内容定位 内容定位分为&#xff1a;主题IP、人物IP &#xff08;2-1&#xff09;主题IP ①有用处 ②有兴…

144基于matlab的平面桁架结构的总体刚度矩阵计算

基于matlab的平面桁架结构的总体刚度矩阵计算&#xff0c;最后以图形形式显示出桁架结构&#xff0c;程序已调通&#xff0c;可直接运行。 144matlab 平面桁架 有限元分析 总体刚度 (xiaohongshu.com)

0125-2-Vue深入学习1—mustache模板引擎原理

[mustache] 是 “胡子”的意思&#xff0c;因为它的嵌入标记 {{ }} 旋转过来很像[胡子]&#xff0c;Vue中的 {{ }} 语法也引用了mustache&#xff0c;这也是我深入学习的目的。 1、原始js方式使 数据 变为视图 <ul id"list"></ul><script>var arr …

Git常用命令介绍

Git 是一个开源的分布式版本控制系统&#xff0c;用于敏捷高效地处理任何或小或大的项目 一、Git的安装 安装包下载地址&#xff1a;https://gitforwindows.org/ 国内的镜像地址&#xff1a;https://npm.taobao.org/mirrors/git-for-windows/ 完成安装之后&#xff0c;在开…

面试常问的Spring AOP底层原理

AOP底层原理可以划分成四个阶段&#xff1a;创建代理对象阶段、拦截目标对象阶段、调用代理对象阶段、调用目标对象阶段 第一阶段&#xff1a;创建代理对象阶段 通过getBean&#xff08;&#xff09;方法创建Bean实例根据AOP的配置匹配目标类的类名&#xff0c;判断是否满足切…