将mongo shell错误重定向到输出

Caique Castro Soares da Silva

我有一个播种我的数据库的脚本,但是我只想将stderr重定向到用户。

我正在尝试:

echo "Seeding pokemon"
mongo mongodb_1:27017/pokemon pokemon.js > /dev/null 2>&1

但是我没有得到错误输出,如果我删除了重定向,错误会输出到我的控制台。

基里尔

Mongo Shell当前不支持错误的单独输出流。

一旦实施,便可以订阅SERVER-18643以获得通知。

上面票证中建议的解决方法是在Mongo Shell中标记您的输出:

...
print("<STDOUT>")
print(multiline_json)
print("</STDOUT>")
print("<STDERR>")
print(multiline_json)
print("</STDERR>")
...

然后,您可以使用以下脚本重定向到正确的输出流:

#!/bin/bash
COMMAND="mongo <args>"
OUTPUT=$(${COMMAND})

function STDERR {
  cat - 1>&2
}

function STDFILE {
  if [ -z "$1" ]; then
    return
  fi
  cat - >> $1
}

WRITE_ERR=0;
for line in $OUTPUT; do
  if [[ "$line" == "<STDERR>"* ]]; then
    WRITE_ERR=1
    continue
  elif [[ "$line" == "</STDERR>"* ]]; then
    WRITE_ERR=0
    continue
  fi
  if [ "$WRITE_ERR" -eq "1" ]; then
    printf "%s\n" "$line" | STDERR
  else
    printf "%s\n" "$line"
  fi
done

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将mongo shell错误重定向到输出

来自分类Dev

将Shell输出重定向到文件

来自分类Dev

将错误重定向到标准输出

来自分类Dev

将Shell命令输出重定向到C程序

来自分类Dev

将Shell命令的输出重定向到文件

来自分类Dev

Cron Job:将Shell脚本输出重定向到文件

来自分类Dev

Shell脚本:将sql查询输出重定向到文件

来自分类Dev

将 sql 输出重定向到 shell 脚本中的文件

来自分类Dev

将 cassandra shell 输出重定向到文件

来自分类Dev

JavaFX:将输入/输出/错误从ProcessBuilder重定向到TextArea?

来自分类Dev

如何将标准输出重定向到标准错误

来自分类Dev

将命令错误输出重定向到/ dev / null

来自分类Dev

将grep错误输出重定向到文件

来自分类Dev

将错误输出重定向到脚本内的文件

来自分类Dev

将命令错误重定向到shell变量?

来自分类Dev

将错误消息重定向到文件-Shell

来自分类Dev

如何将命令的输出重定向到函数但抑制错误并输出到控制台?

来自分类Dev

将标准输出重定向到文件

来自分类Dev

将lldb输出重定向到文件

来自分类Dev

将xargs的输出重定向到文件

来自分类Dev

将输出从文件重定向到stdout

来自分类Dev

将标准输出重定向到整数

来自分类Dev

将Fabric输出重定向到文件

来自分类Dev

将流程输出重定向到JSON

来自分类Dev

将彩色输出重定向到文件

来自分类Dev

将lldb输出重定向到文件

来自分类Dev

将iostat输出重定向到文件

来自分类Dev

将lsim输出重定向到向量

来自分类Dev

将appcmd输出重定向到变量