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

标签 bash shell sh

如果参数有效,我想将 wpa_passphrase 的输出附加到文件中,否则将 err 消息留在屏幕上。

我用

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

但文件仍然包含消息,而屏幕上没有:

Passphrase must be 8..63 characters

谢谢大家

最佳答案

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

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

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

关于bash - 如何将脚本的输出重定向到文件,而不是错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31425156/

相关文章:

linux - 如何在 shell 脚本中运行 shell/python 脚本?

linux - 需要高效且可能是一到两个衬里解决方案来替换空间

java - 如何运行 java jar 文件并将输出存储在 shell 脚本变量中

c - 识别 shell 命令文本中未加引号的特殊字符

如果命令行输出不包含字符串,则发送邮件的 Bash 脚本

bash - 如何忽略通过命令内置调用的命令失败?

regex - 删除 xml 文件中没有排序或唯一的重复连续行

linux - 使用shell脚本获取网络中的图像列表

linux - 如何从 printf 输出中获取变量并定义为其他两个变量的值

escaping - 从 sh : Escaping 中生成 sh 代码