AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 398361
Accepted
GraduateOfAcmeU
GraduateOfAcmeU
Asked: 2012-06-14 08:19:22 +0800 CST2012-06-14 08:19:22 +0800 CST 2012-06-14 08:19:22 +0800 CST

分别为 shell 和程序重定向 STDERR

  • 772

我正在做一些审计自动化,这个例子描述了检查 Java 的版本,即使其他程序做同样的事情。

“java -version”的输出转到 STDERR,这很容易重定向,但我想将 shell 错误(例如,当缺少 java 二进制文件时)发送到 /dev/null。shell 重定向似乎是一个孤注一掷的命题。

到目前为止,我最有希望的尝试是:

{ /bin/ksh "{java -version 2>&1;}"; } 2>/dev/null

...它正确地将 -version 命令的输出发送到 STDOUT,但如果 java 不存在,它也会将 shell“未找到”错误发送到 STDOUT。我不想看到那条消息。

相同的行为:

{ /bin/ksh "{java -version 2>&1;}" 2>/dev/null; }

有谁知道限制重定向范围的方法,以便每个进程都有自己的?我不限于 ksh,但出于环境原因,它必须是基于 shell 的单行程序。

unix shell redirect stderr
  • 2 2 个回答
  • 216 Views

2 个回答

  • Voted
  1. Best Answer
    krissi
    2012-06-14T08:39:58+08:002012-06-14T08:39:58+08:00

    是否无法检查 java 是否已找到并可执行?

    test -x "$(which java)" && java -version 2>&1
    

    或者如果你也想绕过测试并检查 java 错误

    java -version 2>/dev/null 1>/dev/null && java -version 2>&1
    
    • 1
  2. ott--
    2012-06-14T09:34:39+08:002012-06-14T09:34:39+08:00

    您可以重定向到其他描述符。这是针对 bash 的,我认为它也适用于 ksh:

    exec 3>javalog
    java ... 2>&1 >&3
    exec 3>&-
    
    • 1

相关问题

  • Windows 有符号链接吗?

  • 控制 UNIX 目录内容用户组所有权

  • 在命令行上从 csv 文件中过滤带有空格字符的字段

  • 如何将 VAR 从子 shell 导出到父 shell?

  • 查找文件大小(以 MB 为单位)

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve