我正在创建一个项目来显示使用rofi的不同wms的键绑定,但我总是在rofi中得到这个错误,或者可能是由于printf
full code
Mode r} bspc {quitwm r}
' is not found
它尝试使用printf和subprocess显示的行
super + alt + {q ,r} # I reckon the comma is causing the error
bspc {quitwm r}
密码:
subprocess.run(f"rofi -modes \"{rofi_modes}\" -show {args.env[0]} -sidebar-mode", shell=True)
其中,rofi_modes是使用其他函数生成的字符串:
bspwm:"printf" 'super + alt + {q ,r} bspc {quitwm r}
',
我确信{q .r}中的逗号导致了此问题,但我不知道如何解决它。我尝试了不同的方法,但都不起作用
任何帮助都将不胜感激
我尝试引用rofi_mode字符串中的逗号,但没有效果
1条答案
按热度按时间rbl8hiat1#
您看到的错误消息可能是由于代码中使用的printf命令中的逗号引起的。在Bash shell中,逗号用作命令分隔符,因此shell试图将逗号后面的文本视为单独的命令。
要解决此问题,您可以在printf命令中的逗号前面加上反斜杠(),从而对逗号进行转义。这将指示shell将逗号视为常规字符,而不是命令分隔符。
下面是一个示例,说明如何修改代码以转义printf命令中得逗号:
subprocess.run如果您的命令为“是”,请单击“否”。)
这应该可以修复您看到的错误,并允许正确执行printf命令。