【发布时间】:2017-05-30 06:06:04
【问题描述】:
我知道echo 命令会打印它的所有参数并且它不会从标准输入中读取。
但是当我尝试制作 echo NAME | mkdir 时,它告诉我:mkdir: missing operand。
我尝试从 man mkdir 读取,但它没有告诉我 mkdir 从哪里读取。
【问题讨论】:
标签: terminal echo pipeline mkdir
我知道echo 命令会打印它的所有参数并且它不会从标准输入中读取。
但是当我尝试制作 echo NAME | mkdir 时,它告诉我:mkdir: missing operand。
我尝试从 man mkdir 读取,但它没有告诉我 mkdir 从哪里读取。
【问题讨论】:
标签: terminal echo pipeline mkdir
您将名称作为输入传递,mkdir 需要一个参数
试试:
echo NAME | xargs mkdir
xargs 这里正好提供了缺失的链接:它接收输入流,并将其作为参数传递给程序(在本例中为 mkdir)。 请注意,这会将空格分隔的元素解析为不同的参数,因此请谨慎使用。
更多信息请查看man xargs
【讨论】:
mkdir 不会从任何地方读取;它需要参数,例如
mkdir NAME
【讨论】: