【发布时间】:2021-08-11 11:42:47
【问题描述】:
我是 Bash 脚本的初学者,我需要为变量分配一个自定义命令输出,而不是整个命令只是它的一部分。有什么方法可以做到吗?
命令:
gtf 1600 720 60
输出:
# 1600x720 @ 60.00 Hz (GTF) hsync: 44.76 kHz; pclk: 93.10 MHz
Modeline "1600x720_60.00" 93.10 1600 1672 1840 2080 720 721 724 746 -HSync +Vsync
我要存储的内容:
"1600x720_60.00" 93.10 1600 1672 1840 2080 720 721 724 746 -HSync +Vsync
【问题讨论】:
-
您到底想在变量中存储什么?我认为这是我的答案中命令的输出。
-
我想从这个输出中存储 1600x720 @ 60.00 Hz (GTF) hsync: 44.76 kHz; pclk: 93.10 MHz 模型行 "1600x720_60.00" 93.10 1600 1672 1840 2080 720 721 724 746 -HSync +Vsync this "1600x720_60.00" 93.10 1600 1672 1840 2080 7460 7460 7280 7280 7460 7460 同步
-
您可以使用我的回答中的反引号/subshell 语法。只需通过管道 (
|) 将命令的输出发送到 sed 命令,例如your_command | sed 's/^.*Modeline //'如果命令将输出写入stderr,一定要先重定向:your_command 2>&1 -
您可以通过添加您正在运行的命令、其输出以及要存储在变量中的输出的相关部分来改进您的问题。
-
@AlexandruWorld :所以你还想捕捉输出的最后一行没有Modelline这个词吗?或者这只是一个例子,格式可能会有所不同?而且我猜输出是标准输出而不是标准错误,对吧?