我显然无法解决在我看来简单的 rtfm 问题。此行在命令行(zsh 和 bash)上运行良好:-
[[ -f ${HOME}/.xsessionrc.local ]] && . ${HOME}/.xsessionrc.local
当我将它放入我的 .xsessionrc (用 bash 进行修改)时,它没有。
我是否误解双方括号应该起作用?正如我所说,它们是在 bash 命令行上执行的。
这两行都有效(未注释时):-
并不是说我首先需要它清楚地工作,我可以使用其他形式之一,但为什么它不能“在脚本中”工作,但直接从命令行使用时却可以呢?关于 XSession 如何获取 .xsessionrc 的一些细微差别?
# F=${HOME}/.xsessionrc.local;[ -f $F ] && . $F
# [ -f ~/.xsessionrc.local ] && . ${HOME}/.xsessionrc.local
谢谢你的耐心。我现在对此视而不见。我花了几个小时在这上面;)
答案1
使用
[ -f "$HOME/.xsessionrc.local" ] && . "$HOME/.xsessionrc.local"
即,单方括号并引用文件的路径名。
bash
双方括号是(和其他)shell中的非标准测试语法。目前尚不清楚它实际上bash
正在读取您的文件,并且很可能/bin/sh
不理解用于测试的双方括号语法。
也可以看看: