首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Linux shell管道语法

Linux shell管道语法
EN

Stack Overflow用户
提问于 2015-12-26 16:35:58
回答 1查看 176关注 0票数 0

我正在实现一个模拟Linux的程序,我需要用多个管道实现表达式--但我不确定什么是合法的,或者如何处理一些事情,例如:

  • 管道作为命令中的最后一个字符是合法的吗?当我在Linux中尝试它时,它会显示出非常奇怪的行为--按enter键后,它在开始时显示了一个带有>的新行。我不知道这对命令的合法性意味着什么?
  • 如何处理多个连续管道?例如,ls _s_s_想要点帮助。
EN

回答 1

Stack Overflow用户

发布于 2015-12-26 17:10:13

没有一个Linux (但是有几个shell )。最常见的是GNU bash,但您可以使用其他一些工具,如zsh (我正在交互地使用)、,甚至[医]坏蛋 -or es,后者的语法完全不同。而且它们都没有完全相同的语法,也没有报告相同的错误。

然而,有一个标准POSIX,它定义了POSIX外壳规范 (作为英语的技术文档):

管道的格式是: 好了!command1 x command2 . command1的标准输出应连接到command2的标准输入端。

如您所见,不能用|结束命令。

当输入了一个不完整的行时,您的交互式bash将提供一个不同的提示。它使用GNU读出线库进行交互式可编辑输入(和完成)。

我在Linux上知道的所有shell都是自由软件,所以您可以研究它们的源代码。sash是一个相当简单的shell,其代码非常可读的(但有点错误);它缺少大多数更复杂的shell的交互工具(尤其是自动完成)。

在编写自己的shell之前,您需要了解大部分高级Linux编程 .

对于家庭作业,您可能可以在第一次遇到错误时给出错误消息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34473200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档