如何获取错误输出并将其存储在变量或文件中

esa*_*lva 4 unix permissions shell

我在弄清楚如何获取错误输出并将其存储在 ksh 中的变量或文件中时遇到了一些麻烦。所以在我的脚本中我有cp -p source.file destination一个while循环。

当我收到以下错误时

cp: source.file: The file access permissions do not allow the specified action.
Run Code Online (Sandbox Code Playgroud)

我想抓取它并将其存储在变量或文件中。

谢谢

Ber*_*ard 5

您可以像这样重定向命令的错误输出:

cp -p source.file destination 2>> my_log.txt
Run Code Online (Sandbox Code Playgroud)

它将错误消息附加到 my_log.txt 文件中。

如果您想要一个变量,您可以将 stderr 重定向到 stdout 并将命令输出分配给变量:

my_error_var=$(cp -p source.file destination 2>&1)
Run Code Online (Sandbox Code Playgroud)