【问题标题】:Bash parameter substitution in xinitrcxinitrc 中的 Bash 参数替换
【发布时间】:2013-06-29 00:03:36
【问题描述】:

我正在尝试编辑我的.xinitrc 文件,以便startx 可以运行一个参数,告诉它要使用哪个窗口管理器/桌面,但如果没有提供则回退到默认值。 .xinitrc 是一个 shell 脚本。

我使用的是这段代码:

desktop=${desktop:-startkde}
exec $desktop

这个想法是运行startx desktop=fluxbox 将启动一个不同的桌面,而不是提供的默认桌面,但这不起作用。谁能看到我在这里做错了什么?

【问题讨论】:

    标签: bash shell parameters command-line-arguments


    【解决方案1】:

    试试:

    desktop=fluxbox startx
    

    环境变量通过将它们放在命令名称之前来设置;命令名称之后的所有内容都只是命令的参数。

    【讨论】:

    • 谢谢!做到了:) 虽然我觉得解决方案很奇怪.. 很多脚本在命令名称之后而不是之前使用 variable=value 方法。他们究竟是如何做到这一点的?
    • 只有在命令本身特别处理该形式的参数并从中设置变量时才有效。例如,makeawk 会这样做,尽管它们设置的是内部变量,而不是环境变量。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多