随笔 - 6  文章 - 124  评论 - 1  阅读 - 13042

Linux &&、& 各种操作符困惑? 看此文

一、简介

Linux命令,特别是组合到脚本中时,可以自动执行任务、管理系统资源和解决复杂问题。但是要真正发挥命令行的强大功能,需要了解如何控制命令执行流程,例如: &&、|| 等等。

这些符号虽然简单,但却是在Linux Bash中创建复杂命令序列的基础。使用它们,可以创建命令的条件链,根据每个命令的成功或失败来规定执行流程。它们一开始可能看起来令人生畏,但是一旦理解了它们的逻辑,就会发现它们在命令行工具包中不可或缺。

二、控制命令执行流程的有哪些操作符?

  • &&

  • ||

  • ;

三、&& 和 &

&&

&& 即为逻辑与,例如:command1 && command2,只有当command1执行成功后(执行成功返回0退出码,其他码都为失败),command2才执行

示例:

mkdir new_directory && ls new_directory

&

& 表示命令将会在后台执行,输出的结果不会输出到终端

示例:

ls &

四、|| 和 |

||

|| 即为逻辑或,例如:command1 || command2,只有当command1执行失败,command2才执行。

示例:

mkdir existing_directory || echo "Directory already exists!"

此处如果existing_directory目录已经存在,则会执行echo命令,输出报错提示

|

| 表示通道,通道可以想象成一个水流管道,一边进,一边出,之前讲过的标准输入输出用的就是管道,管道插在两个命令之间,把前面命令的标准输出作为后面命令的标准输入。

示例:

ls | grep nginx

五、;

;(分号)的含义是不管前面命令执行成功还是失败,都会执行后面的命令。

示例:

mkdir new_directory; ls

六、> 和 >>

>

> 用于把标准输出写入文本,会覆盖掉已有的内容

示例:

cat > test.txt

>>

>> 与 > 不同的是它不会覆盖原有内容,会把内容追加到结尾

七、< 和 <<

<

< 用于把标准输入读取到命令中

示例:

cat < abc.txt

<< 也是把标准输入读取到命令中,不过它可以读取多行文本,可以作为代替使用临时文件存储多行文本的方式

示例:

cat << END
Hello
This is a here document
END

cat从here文档接收输入的命令。<< END和END之间的行是输入行。当shell看到<< END时,它将读取输入,直到遇到END分隔符。然后,它将这些行作为输入传递给cat命令,最后cat命令将它们输出到终端。
posted on   我是唐青枫  阅读(22)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示