Dan*_*gen 6 bash pulse-audio escape-characters xbindkeys
如何在 .xbindkeysrc 命令中转义引号?这些都不起作用。
"pacmd dump|awk --non-decimal-data '$1~/set-sink-volume/{system ("pacmd "$1" "$2" "$3+2500)}'"
"pacmd dump|awk --non-decimal-data '\$1~/set-sink-volume/{system ("pacmd "\$1" "\$2" "\$3+2500)}'"
"pacmd dump|awk --non-decimal-data '\$1~/set-sink-volume/{system (\"pacmd \"\$1\" \"\$2\" \"\$3+2500)}'"
"pacmd dump|awk --non-decimal-data '$1~/set-sink-volume/{system (\"pacmd \"$1\" \"$2\" \"$3+2500)}'"
Run Code Online (Sandbox Code Playgroud)
(这些命令会提高 PulseAudio 音量级别)
这里有两个不同的问题,我将尝试解决这两个问题。
第一个是如何在.xbindkeysrc.
你所要做的就是执行一个在 中有效的命令bash,然后在它周围加上双引号。
例如,对于其中包含空格的命令,您必须运行
"/home/user/My Programs/progname"
Run Code Online (Sandbox Code Playgroud)
或者
/home/user/My\ Programs/progname
Run Code Online (Sandbox Code Playgroud)
在bash。
这意味着你需要
""/home/user/My Programs/progname""
Run Code Online (Sandbox Code Playgroud)
或者
"/home/user/My\ Programs/progname"
Run Code Online (Sandbox Code Playgroud)
在您的.xbindkeysrc.
从技术上讲,发生的事情是 xbindkeys 删除最外面的一对双引号,然后使用sh -c.
在您的示例中,命令
pacmd dump|awk --non-decimal-data '$1~/set-sink-volume/{system ("pacmd "$1" "$2" "$3+2500)}'
Run Code Online (Sandbox Code Playgroud)
在 bash 中工作正常,所以我认为问题出在其他地方。
尝试xbindkeys使用该-v选项运行,它会xbindkeys在前台运行,这样您就可以在终端上看到任何错误。
就我而言,它表明根本原因不是引用pacmd错误,而是给出了错误
...
No PulseAudio daemon running, or not running as session daemon.
Run Code Online (Sandbox Code Playgroud)
但是如果您有 PulseAudio 工作,我认为您需要更改pacmd为pactl,因为手册页说这pacmd不带参数,并且网络上的其他几个示例显示pactl用于此目的。