【发布时间】:2012-11-10 03:13:00
【问题描述】:
我今天一直在查找一些 bash 的东西,我尝试过的一些 sn-ps 包括 > >,这似乎是我收到错误的原因。
command 2> >(while read line; do echo -e "\e[01;31m$line\e[0m" >&2; done)
这就是我正在使用的东西。
$ bash --help
GNU bash, version 3.2.48(1)-release-(x86_64-apple-darwin12)
编辑
以下是我遇到的错误:
file.sh: line 14: syntax error near unexpected token `>'
file.sh: line 14: `command 2> >(while read line; do echo -e "\e[01;31m$line\e[0m" >&2; done)'
【问题讨论】:
-
你到底想做什么?什么是命令?你想用'> >'做什么?
-
对,我知道
>和>>。我真的不明白> >应该做什么,但我今天在谷歌搜索中看到了好几次,它是由具有很高声誉的人发布的,人们对代码进行了投票等等。该特定行应该为错误着色。您可以点击Example snippet链接了解更多信息。 -
您遇到了什么错误?这种语法没有错。
2>重定向标准输出。>(...)被替换为进入子进程的可写管道的名称,因此它很像|,但带有括号。 -
顺便说一下,
>()语法记录在 bash 手册中:gnu.org/software/bash/manual/bashref.html#Process-Substitution。恕我直言,阅读 bashref.html 会比谷歌搜索随机人们的随机 cmets 更好地利用您的时间。但是YMMV。 -
你在file.sh的开头使用
#!/bin/bash还是#!/bin/sh?第一个是正确的(可能);第二个将运行不同的 shell 程序或导致bash尝试与sh兼容。
标签: bash