如何将脚本的输出重定向到文件,但不是错误?

时间:2015-07-15 08:23:47

标签: bash shell sh

如果参数有效,我想将wpa_passphrase的输出附加到文件中,否则将错误信息留给屏幕。

我用

wpa_passphrase 1 111 2>&1 >>file
wpa_passphrase 1 111111111 2>&1 >>file

但文件仍然包含msg而屏幕没有:

Passphrase must be 8..63 characters

感谢大家

1 个答案:

答案 0 :(得分:4)

问题是wpa_passphrase将错误写入 stdout 而不是 stderr 。这段代码应该可以解决问题:

out=$(wpa_passphrase 1 1111111111) && echo "$out" >> file || echo "$out"

代码将输出分配给变量,并且仅当前面的命令成功时才将变量回显到文件,否则它将输出打印到屏幕。

相关问题