相关疑难解决方法(0)

将stdout和stderr捕获到不同的变量中

是否可以在不使用临时文件的情况下在不同的变量中存储或捕获stdout和stderr ?现在我这样做是为了outerr运行时获取stdout 和stderr some_command,但是我想避开临时文件.

error_file=$(mktemp)
out=$(some_command 2>$error_file)
err=$(< error_file)
rm $error_file
Run Code Online (Sandbox Code Playgroud)

bash shell command-line io-redirection

62
推荐指数
8
解决办法
3万
查看次数

在Bash中捕获stdout和stderr

我知道这个语法

var=`myscript.sh`
Run Code Online (Sandbox Code Playgroud)

要么

var=$(myscript.sh)
Run Code Online (Sandbox Code Playgroud)

将捕获结果(stdout)myscript.sh转化为var.我可以重定向stderrstdout,如果我想同时捕获.如何将它们中的每一个保存为单独的变量?

我在这里的用例是如果返回代码非零,我想要回显stderr并禁止其他方式.可能有其他方法可以做到这一点,但这种方法似乎可行,如果它实际上是可能的.

bash stdout pipe stream stderr

41
推荐指数
5
解决办法
5万
查看次数

标签 统计

bash ×2

command-line ×1

io-redirection ×1

pipe ×1

shell ×1

stderr ×1

stdout ×1

stream ×1