当前位置: 首页 > ai >正文

关于shell命令的扩展

目录

一、逻辑运算符

1. &&(AND)

2. ||(OR)

3. 组合使用:A && B || C

二、输出与重定向

1. echo 输出

2. 标准文件描述符(FD)

3. 重定向操作符

4. 同时重定向 stdout 和 stderr

5. 丢弃输出

三、管道 |

四、自定义文件描述符(进阶)

五、小结速查


一、逻辑运算符

1. &&(AND)
  • 含义:只有左侧命令成功(退出码为 0)时才执行右侧命令。

  • 示例

    true && echo "成功"   # 输出“成功”
    false && echo "失败"  # 无输出
2. ||(OR)
  • 含义:只有左侧命令失败(退出码非 0)时才执行右侧命令。

  • 示例

    false || echo "失败"  # 输出“失败”
    true || echo "成功"   # 无输出
3. 组合使用:A && B || C
  • 等价于(A && B) || C

  • 示例

    false && echo yes || echo fallback  # 输出 fallback

二、输出与重定向

1. echo 输出
  • 默认输出到 stdout(标准输出)

  • 输出到 stderr(标准错误):

    echo "错误信息" >&2
2. 标准文件描述符(FD)
  • 0:stdin(标准输入)

  • 1:stdout(标准输出)

  • 2:stderr(标准错误)

3. 重定向操作符
  • >:覆盖写入文件

  • >>:追加写入文件

  • 2>:重定向 stderr(覆盖)

  • 2>>:重定向 stderr(追加)

4. 同时重定向 stdout 和 stderr
  • POSIX 写法

    command >out.txt 2>&1
    
    
  • Bash 简写

    command &>out.txt
5. 丢弃输出
  • 丢弃 stdout:

    command > /dev/null
  • 丢弃 stderr:

    command 2> /dev/null
  • 同时丢弃:

    command > /dev/null 2>&1
    # 或
    command &> /dev/null

三、管道 |

  • 默认:只传递 stdout,不传递 stderr

  • 传递两者

    command 2>&1 | grep something
    # 或(Bash)
    command |& grep something

四、自定义文件描述符(进阶)

  • 打开 FD 3 并写入:

    exec 3>mylog.txt
    echo "hello" >&3
    exec 3>&-  # 关闭

五、小结速查

操作说明
A && BA 成功才执行 B
A || BA 失败才执行 B
> file覆盖写入 stdout
>> file追加写入 stdout
2> file覆盖写入 stderr
2>> file追加写入 stderr
2>&1将 stderr 重定向到 stdout
&> file同时重定向 stdout 和 stderr(Bash)
> /dev/null丢弃 stdout
2> /dev/null丢弃 stderr
|管道,只传递 stdout
2>&1 | 或|& (bash)管道传递 stdout 和 stderr

http://www.xdnf.cn/news/19040.html

相关文章:

  • AlexNet:点燃深度学习革命的「卷积神经网络之王」
  • 接口测试工具:Postman详解
  • 计算机专业考研备考建议
  • idea2025.2中maven编译中文乱码
  • 编译esp32报错解决办法
  • 机器学习复习
  • 【go】三端实时反馈系统的设计,websocket实现
  • 12.压缩和打包
  • 创建第一个 Electron 应用:Hello World 示例
  • 【算法】15. 三数之和
  • 阻塞,非阻塞,同步,异步的理解
  • Linux -- 进程间通信【命名管道】
  • 【golang长途旅行第34站】网络编程
  • GPT-5原理
  • mybatis.xml直接读取配置文件(application.yml)中的数据
  • 图扑 HT 农林牧数据可视化监控平台
  • 计算机视觉----opencv(图像轮毂绘制(大小选择,排序,外接图形绘制),轮廓的近似,模板的匹配)
  • 10迁移TiDB数据库数据到GaussDB
  • 前端vue3入门学习
  • OSS Nginx 反代提示 SignatureDoesNotMatch
  • 【面试系列】谈谈你对数据库ACID的理解
  • 2023年12月GESP5级C++真题解析,包括选择判断和编程
  • 【MFC教程】C++基础:01 小黑框跑起来
  • 嵌入式学习 day61 DHT11、I2C
  • 数据分析编程第六步:大数据运算
  • MySQL-索引(下)
  • 【C语言初阶】指针_野指针,指针运算
  • 大白话说 AI 编程 Trae,小白进!
  • 【计算机网络】前端基础知识Cookie、localStorage、sessionStorage 以及 Token
  • 【上位机数据转换】数据结构原理及大小端