解释最后冲刺在bash /管道表达

问题描述:

我想了解一个bash表达解释最后冲刺在bash /管道表达

oc process -f build/my-build-template.yaml GITSERVER=$GITSERVER | oc create -f - 

这里找到:https://github.com/openshift/origin/issues/15474

这是从OpenSift API的例子。第一部分oc process -f build/my-build-template.yaml GITSERVER=$GITSERVER返回一些JSON:

据我所知,这个JSON将是oc create -f <EXPECT FILE AS INPUT HERE>的输入,它需要一个文件。

什么是最后-... | oc create -f -

+1

它意味着管道从stdin读取后的命令 – Inian

许多工具的目的允许标准输入的规格为文件名“ - ”。这允许管道按预期工作,而不需要基于shell或基于OS的解决方法。

+2

应该强调的是,处理短划线是工具的责任(在这种情况下为'oc')。通常情况下,工具会在其手册页中指定''''可以作为文件名来指示'stdin'应该被用来代替真实文件,或者*它根本不会支持这种破折号特征*。许多工具没有特殊的'-'处理,然后搜索这个名字的文件。那么'/ dev/stdin'通常可以用来代替(取决于操作系统)。看看'man oc'来看'oc'是否支持这个。我没有'oc',所以我不能查看它。 – Alfe