python 管道符,Linux中的管道与连接符号

1. 背景

最近在学习Linux中的管道与连接符号,写一篇笔记进行总结。

2. 输入输出重定向

2.1. 管道符号 |

Command A | Command B

将前A命令的输出作为B命令的输入。

常与筛选命令grep搭配使用,如

ps aux | grep mysql

在所有进程中查询含有mysql关键字的信息。

ps aux | grep mysql | less

还可以将输入导入less命令,less 是一个分页工具,它允许你一页一页地查看信息。

2.2. 输出重定向符号 >

Command A > File B

将前A命令的输出写入B文件,覆盖原文件内容。

如在hello.txt中写入Hello World!。

echo Hello World! > hello.txt

2.3. 输出重定向符号 >>

Command A >> File B

将前A命令的输出追加写入B文件,不覆盖原文件的内容。

echo Hello World! >> hello.txt

将 Hello World! 追加到 hello.txt 后面。

注:cat hello.txt >> hello.txt会导致无限循环。

2.4. 输入重定向符号 <

Command A < File B

将 B文件的内容作为命令 A 的输入。

先创建 Python 文件 test.py,功能为输出用户输出的内容。

echo 'print(input())' > test.py

将 hello.txt 作为 test.py 的输入。

python test.py < hello.txt

结果会输出 Hello World!。

3. 连接符号

3.1. 连接符号 ;

Command A ; Command B

在一行写入多个命令时,使用;进行分割,不论 A 命令是否执行成功,B命令都会继续执行。

比如下面的命令,A命令执行失败,B命令执行成功。

ee ; echo Hello World!

输出为

zsh: command not found: ee

Hello World!

3.2. 后台执行符号 &

Command A &

命令A会进入后台执行,当用于挂载后台服务,或执行耗时任务时可能会用到。

如下面的命令,会创建一个后台进程,在60秒后结束。

sleep 60 &

命令行会输出[1] 51277,表示进程的PID为 51277,60秒后会输出[1] 51277 done sleep 60,表示进程结束。

3.3. 逻辑与符号 &&

Command A && Command B

若A命令执行成功,继续执行B命令,否则不执行B命令。

如下面的命令会在60秒后输出Hello World!。

sleep 60 && echo Hello World!

而接下里这条命令只会输出命令A的错误信息。

ee && echo Hello World!

输出为zsh: command not found: ee。

3.4. 逻辑或符号 ||

Command A || Command B

如果命令 A 执行失败,则执行 B。

ee || echo Hello World!

输出为

zsh: command not found: ee

Hello World!

4. 子命令符号

4.1. 子命令符号 ()

(Command A)

创建一个子 shell 去执行命令 A,在A中切换文件夹不会影响当前shell工作路径。

(cd .. ; ls)

这条命令会返回上层目录的内容,但工作路径仍然在当前目录。

Command A $(Command B)

表示返回命令B的结果,并将结果作为命令A的参数继续执行。

$(echo echo) B

输出为 B。

echo A $(echo B)

输出为 A B。

4.2. 表达式计算符号 (())

((Calculation A))

计算表达式A的值。

如果要作为变量的话,需要加上$。如echo $((3+2)),输出为5。

常与 if 和 for 命令配合使用。

if ((3>2)) echo true

for ((i=1;i<=16;i++));do echo $i; done

联系邮箱:curren_wong@163.com

公众号:复杂网络与机器学习

欢迎关注/转载,有问题欢迎通过邮箱交流。

原文链接:https://blog.csdn.net/qq_41729780/article/details/108460075

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值