我可以从以下位置返回:
$OUTPUT = $(flutter build ios --release --no-codesign | tail -1)
我想从构建中获得最后一行并显示进度,类似于
$OUTPUT = $(flutter build ios --release --no-codesign | out | tail -1)
其中假设的out
实用程序也将输出发送到终端。
你知道怎么做吗?
我可以从以下位置返回:
$OUTPUT = $(flutter build ios --release --no-codesign | tail -1)
我想从构建中获得最后一行并显示进度,类似于
$OUTPUT = $(flutter build ios --release --no-codesign | out | tail -1)
其中假设的out
实用程序也将输出发送到终端。
你知道怎么做吗?
4条答案
按热度按时间aemubtdh1#
注意事项:
tee /dev/tty
solution是最简单的。($IsWindows ? '\\.\CON': '/dev/tty')
到-Host
。Tee-Object
不幸地不支持以CON
为目标,需要一个利用Out-Host
的 * 代理函数 *-请参阅this answer。一个 PowerShell 解决方案(假设你的问题中的代码是PowerShell[1]):
我不确定
flutter
如何报告其进度,但以下方法可能有效:如果一切都转到 stdout:
注意:
%
是ForEach-Object
的内置别名,select
是Select-Object
的内置别名。如果进度消息转到 stderr:
[1]正如赋值 * 的LHS中变量名 * 中的
$
符号和=
周围的空格所证明的那样(
$OUTPUT =
),这两个都不能在类似bash
/POSIX的shell中正常工作。63lcw9qa2#
我假设你是说bash,因为据我所知,powershell中没有
tail
。下面是如何在将命令捕获到变量中的同时查看命令的输出。
edqdpe6u3#
我在管道中使用写进度。为了保持管道的可读性,我写了一个函数
函数Write-PipedProgress{ <#
联系我们
}
希望这有帮助;- )
kqqjbcuj4#
我相信这会起作用,至少在OSX或Linux PowerShell(甚至是Linux的Windows子系统)中有这些命令可用。我用“ls”而不是“flutter”来测试它。真的有“out”命令吗?
或者,假设tee没有别名为tee对象。事实上,tee-object也可以工作。
它也可以使用$(),但你不需要它。在powershell中,它用于合并多个管道。