如何将标准出错保存到变量,同时标准输出不要显示到屏幕?

sinall 2008-03-18 11:13:14
如题
1、标准出错保存到变量,而非屏幕。
2、同时,标准输出不要显示到屏幕。
...全文
157 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sinall 2008-03-20
  • 打赏
  • 举报
回复
还有,怎么把一个命令的标准输出和标准出错输出同时保存成两个变量?
谢谢。
sinall 2008-03-20
  • 打赏
  • 举报
回复
sorry,我是在tcsh上试的,bash上可以。
sinall 2008-03-20
  • 打赏
  • 举报
回复
ls 2 > & 1 1 > /dev/null
Ambiguous output redirect.
好像命令有问题?
xsir317 2008-03-18
  • 打赏
  • 举报
回复
$error = $!;

这样就可以了呀。。。

标准出错显示到屏幕上是因为你写了or die "xxxxxx$!"才会显示的

不写这句就可以了。。。或者在or die后面那个字符串不要显示$!也可以。看你自己喜欢了。
iambic 2008-03-18
  • 打赏
  • 举报
回复
[code=BatchFile]err=`yourcomd 2>&1 1>/dev/null`
echo "[$err]"[/code]
sinall 2008-03-18
  • 打赏
  • 举报
回复
不好意思,还是我没说清楚
我写的是shell脚本。调用的也是shell命令,比如grep、awk之类的。。。
我想把执行结果自己分析,而不想让它被打印在屏幕上。

比如:
#!/bin/sh

find . -name "asdf"

find 有些目录不能访问啦。。。找到匹配文件啦。。。都会打印在屏幕上,而我想把出错的信息保存下来,自己分析。然后在屏幕上显示我分析的结果。。。

有一种办法是把结果重定向到文件,这种方法是不是有点土?有没有更高级的方法?


谢谢。
iambic 2008-03-18
  • 打赏
  • 举报
回复
是说调用一个外部程序,保存标准输出吗?如果是,参考:
perldoc -q stderr
《Perl Cookbook》16.7
sinall 2008-03-18
  • 打赏
  • 举报
回复
举个例子行吗?没太看明白你说的。。。谢谢

37,721

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧