首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ssh下使用多条-exec语句查找命令的问题

在ssh下使用多条-exec语句查找命令的问题
EN

Stack Overflow用户
提问于 2013-04-06 05:01:04
回答 1查看 94关注 0票数 0

我编写了一个find命令,它将查找系统上安装的所有java。它有3个-exec子句: find / -name java -type f -exec ls -l {} \;-exec {} -version \;-exec echo \;

当从命令提示符运行时,它会生成如下输出:

代码语言:javascript
复制
-rwxr-xr-x 1 root root 47308 Oct 11  2009 ./usr/java/jre1.6.0_17/bin/java
java version "1.6.0_17"
Java(TM) SE Runtime Environment (build 1.6.0_17-b04)
Java HotSpot(TM) Server VM (build 14.3-b01, mixed mode)

-rwxr-xr-x 1 root root 47308 Nov 14 06:27 ./usr/java/jdk1.6.0_38/bin/java
java version "1.6.0_38"
Java(TM) SE Runtime Environment (build 1.6.0_38-b05)
Java HotSpot(TM) Server VM (build 20.13-b02, mixed mode)

我遇到的问题是,当我从ssh运行命令时,不会生成java版本。

代码语言:javascript
复制
ssh -T -o $USER@$ip_addr  "find / -name java -type f -exec ls -l {} \; -exec {} -version \; -exec echo \;" 
-rwxr-xr-x 1 root root 47308 Oct 11  2009 ./usr/java/jre1.6.0_17/bin/java

-rwxr-xr-x 1 root root 47308 Nov 14 06:27 ./usr/java/jdk1.6.0_38/bin/java

执行第一个-exec子句(ls -l)。第二个-exec子句不起作用(java -version)。执行第三个-exec子句(echo)。

问题出在ssh命令上。这在shell脚本中工作得很好。我试着逃离一些领域,但找不到解决方案。

有什么建议吗?

提前谢谢。史考特

EN

回答 1

Stack Overflow用户

发布于 2013-04-06 05:16:17

该命令

代码语言:javascript
复制
java -version

将其输出发送到stderr,而不是stdout。

您可以通过附加以下命令将stderr重定向到stdout

代码语言:javascript
复制
2>&1

添加到命令。例如:

代码语言:javascript
复制
ssh -T -o $USER@$ip_addr  "find / -name java -type f -exec ls -l {} \; -exec {} -version \; -exec echo \; 2>&1"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15843476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档