我有一个打印我的音量状态的脚本。它检查pactl subscribe
的输出以确定何时发生了更改。目前,我正在使用while循环来执行此操作,并且在脚本运行了一段时间后(我可以通过按住一个键将静音切换大约一分钟来快速复制),唯一的输出是“ / usr / bin / grep:参数列表太长”
我尝试使用< <(pactl subscribe)
,将其传递到while循环中,并且还从fifo中读取。这些都不起作用。这是预期的吗?如果是这样,处理打印无限输出的类似pactl subscribe
之类的方法是什么?由于第一个错误提到了ponymix,所以我认为这可能是一个问题,但是使用pamixer不能解决任何问题。
完整脚本为here。以下是相关摘录:
while read -r event; do
if echo "$event" | grep --quiet --invert-match --ignore-case "client"; then
print_volume
fi
done < <(pactl subscribe)
我希望没有错误。第一个错误是line 36: /usr/bin/ponymix: Argument list too long
。第二个错误是line 36: /usr/bin/grep: Argument list too long
。然后,所有输出为line 88: /usr/bin/grep: Argument list too long
。
编辑:这与通过将长参数列表传递给某些对象而导致的建议重复项不同。我没有在该示例中使用通配符。
答案 0 :(得分:0)
问题在于,在print_volume
函数内部,我反复寻找其中包含export
的文件。正如查尔斯·达菲(Charles Duffy)指出的那样,这导致环境规模过大。