如果参数有效,我想将wpa_passphrase的输出附加到文件中,否则将错误信息留给屏幕。
我用
wpa_passphrase 1 111 2>&1 >>file
wpa_passphrase 1 111111111 2>&1 >>file
但文件仍然包含msg而屏幕没有:
Passphrase must be 8..63 characters
感谢大家
答案 0 :(得分:4)
问题是wpa_passphrase
将错误写入 stdout 而不是 stderr 。这段代码应该可以解决问题:
out=$(wpa_passphrase 1 1111111111) && echo "$out" >> file || echo "$out"
代码将输出分配给变量,并且仅当前面的命令成功时才将变量回显到文件,否则它将输出打印到屏幕。