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

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:~#

我只需要捕获那一行输出...提前谢谢

最佳答案

看来,在标准 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 &语法,但是不建议(实际上)

关于linux - 如何捕获 'mount'输出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8682940/

10-16 04:30