砰.传递包含空格的变量



我在Linux上使用dmenu列表选择工具。让我们假设我的典型调用是这样的:

ls | dmenu $DMENU_OPTIONS 

来自 .dmenurc 的设置:

DMENU_FN="Liberation:size=16"
DMENU_OPTIONS="<...> -fn $DMENU_FN"

然后,我使用了一些基于 dmenu 的快速启动脚本。它采用以下行的菜单选项:

dmenu_cmd="dmenu $DMENU_OPTIONS"
现在,

我将字体名称切换到解放单声道,字体片段现在被识别为一个选项的两个参数。Dmenu 收到语法错误。我无法使用引号或反斜杠来解决这个问题。因此,有一个带有空格键的变量应该传递给另一个变量。

如果您将

字体名称与其他参数(如下例)分开并使用双引号,它将起作用:

DMENU_FONT="Dejavu Sans Mono:medium:size=18"
DMENU_OPTS="-nb #191919 -nf #FF0000 -sb #FF9318 -sf #191919"
ls | dmenu -fn "$DMENU_FONT" $DMENU_OPTS

请注意,DMENU_FONT 在双引号内,而DMENU_OPTS则不在,因为目标是将字体名称作为单个值返回,将第二个变量作为多个参数返回。

希望对您有所帮助。

我为此使用的一种解决方法是使用 fontconfig 为 Liberation Mono 字体创建 LiberMono 别名。只需添加这样的文件:

~/.

config/fontconfig/fonts.conf

<!-- Insert joke here -->
<match>
  <test name="family"><string>LiberMono</string></test>
  <edit name="family" mode="assign" binding="strong">
    <string>Liberation Mono</string>
  </edit>
</match>

相关内容

  • 没有找到相关文章

最新更新