如何捕获'mount'输出

时间:2011-12-30 18:57:38

标签: linux error-handling

我想我错过了一些非常愚蠢的东西,请纠正我。

root@fdas:~# mount /dev/sdd1 /b 2>&1 > /tmp/test

mount: you must specify the filesystem type
root@fdas:~# cat /tmp/test 
root@fdas:~# mount /dev/sdd1 /b > test
mount: you must specify the filesystem type
root@fdas:~# cat test 
root@fdas:~# 

我只需要捕获那一行输出......先谢谢你

3 个答案:

答案 0 :(得分:2)

看来在标准shell(不是bash / csh)中,您需要先告诉它在哪里重定向stdout然后再重定向stderr,这样您只需要交换重定向:

mount /dev/sdd1 /b > /tmp/test 2>&1

在CSH中,您可以使用&作为Shiplu建议:

mount /dev/sdd1 /b >&  /tmp/test

在BASH中&语法不同:

mount /dev/sdd1 /b &>  /tmp/test

BASH也支持CSH &语法,但不推荐(在man中)

答案 1 :(得分:1)

您想要捕获stderr。以下将捕获所有。

mount /dev/sdd1 /b >&  /tmp/test 

答案 2 :(得分:1)

重定向语法取决于shell 有两种类型--bash(或Bourne shell系列)和csh(或C shell系列)
在csh中,使用“cmd>& file”重定向stdout&标准错误,
在bash中,使用“cnd 2>& 1> file”来执行相同的操作 更多信息here