gpt4 book ai didi

PowerShell 的 Write-Host 的 Bash 等效项(写入终端但不通过管道传输到标准输出)

转载 作者:行者123 更新时间:2023-12-02 22:35:51 24 4
gpt4 key购买 nike

在 PowerShell 中,我可以这样做:

function Get-Foo()
{
Write-Host "Calculating result..."
return 42
}

$x = Get-Foo
Write-Host "The answer is $x" # output: The answer is 42

所以 Calculating result..输出到控制台,但它不存在于管道中,所以我可以只获取方法的“返回值”并且它可以工作

但是在 bash 中我没有 Write-Host像这样的事情是行不通的:
function getfoo {
echo "Calculating result..."
echo "42"
}

x=$(getfoo)
echo $x # output will include "Calculating result..."

我意识到我可以保存到文件并在之后打印,只是想知道是否有更优雅的选择

最佳答案

将您的输出重定向到 /dev/tty 直接打印到终端:

echo "Calculating result..." > /dev/tty

简单的例子:
# Only '42' is stored in $output
$ output=$(echo "Calculating result..." > /dev/tty; echo 42)
Calculating result...

另一个, 可能更好的选择 - 如果你想给调用者选择仍然捕获 - 或静音 - 状态信息 - 是 重定向到标准错误 , 与 >&2 :
# Only '42' is stored in $output
$ output=$(echo "Calculating result..." >&2; echo 42)
Calculating result...

关于PowerShell 的 Write-Host 的 Bash 等效项(写入终端但不通过管道传输到标准输出),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61729227/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com