首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在与罗菲连用的printf中对逗号进行量化?

如何在与罗菲连用的printf中对逗号进行量化?
EN

Stack Overflow用户
提问于 2022-12-02 12:48:54
回答 1查看 14关注 0票数 0

我正在创建一个项目来显示不同wms的键绑定,但是我总是在rofi中得到这个错误,或者可能是由于printf。

全码

代码语言:javascript
复制
Mode r}      bspc {quitwm r}
' is not found

它试图使用printf和子进程显示的行。

代码语言:javascript
复制
super + alt + {q ,r} # I reckon the comma is causing the error
    bspc {quitwm r}

代码:

代码语言:javascript
复制
subprocess.run(f"rofi -modes \"{rofi_modes}\" -show {args.env[0]} -sidebar-mode", shell=True) 

其中rofi_modes是使用另一个函数生成的字符串:

代码语言:javascript
复制
bspwm:"printf" 'super + alt + {q ,r}    bspc {quitwm r}
',

我确信{q .r}中的逗号造成了这种情况,但我不知道如何解决它--我尝试了不同的方法,但没有起作用

任何帮助都将不胜感激。

我试着在rofi_mode字符串中引用逗号,但没有起作用

EN

回答 1

Stack Overflow用户

发布于 2022-12-02 12:53:55

您所看到的错误消息可能是由于您在代码中使用的printf命令中的逗号造成的。在Bash中,逗号用作命令分隔符,因此shell试图将逗号后面的文本作为单独的命令处理。

要解决这个问题,您可以在printf命令中使用反斜杠()来转义逗号。这将告诉shell将逗号视为常规字符,而不是命令分隔符。

下面是如何修改代码以转义printf命令中的逗号的示例:

代码语言:javascript
复制
rofi_modes = bspwm: "printf 'super + alt + {q \,r}    bspc {quitwm r}'"

subprocess.run(f"rofi -modes "{rofi_modes}“-show {args.env} -侧边栏-模式”,shell=True)

这将修复您所看到的错误,并允许正确执行printf命令。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74656049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档