【问题标题】:Trying to pass the output of echo into mkdir command试图将 echo 的输出传递给 mkdir 命令
【发布时间】:2017-05-30 06:06:04
【问题描述】:

我知道echo 命令会打印它的所有参数并且它不会从标准输入中读取。

但是当我尝试制作 echo NAME | mkdir 时,它告诉我:mkdir: missing operand

我尝试从 man mkdir 读取,但它没有告诉我 mkdir 从哪里读取。

【问题讨论】:

    标签: terminal echo pipeline mkdir


    【解决方案1】:

    您将名称作为输入传递,mkdir 需要一个参数

    试试:

    echo NAME | xargs mkdir
    

    xargs 这里正好提供了缺失的链接:它接收输入流,并将其作为参数传递给程序(在本例中为 mkdir)。 请注意,这会将空格分隔的元素解析为不同的参数,因此请谨慎使用。

    更多信息请查看man xargs

    【讨论】:

    • 太棒了,它正在工作。你能解释一下为什么以及什么是 xargs 吗?
    • @FineasSilaghi,编辑了我的答案。我认为 xargs 是 linux 中大多数人从未听说过的最有用的实用程序之一
    【解决方案2】:

    mkdir 不会从任何地方读取;它需要参数,例如

    mkdir NAME
    

    【讨论】:

      猜你喜欢
      • 2017-10-09
      • 2017-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-30
      • 1970-01-01
      相关资源
      最近更新 更多