我敢肯定我在这里遗漏了一些明显的东西。由于与问题无关的原因,我在.bashrc和.zshrc中包含以下代码(但我可以解释为什么需要此原因,不是秘密,只是不相关):
export LS_OPTIONS="-lAhF --color=auto --group-directories-first --time-style=+%Y-%m-%d\ %H:%M:%S"
alias ls='ls $LS_OPTIONS'
当我运行ls
别名时,出现以下错误:
ls: cannot access '%H:%M:%S': No such file or directory
很明显,别名没有在--time-style
选项的中间保留反斜杠。显然,我尝试过使用大量不同的引用样式来使反斜杠或空格保留在那里,但无济于事。
更糟糕的是,该解决方案必须同时在 Zsh和Bash中使用,因此我无法使用任何棘手的参数扩展。
我真的精通shell脚本已有好几年了,所以我已经忘记了所有繁琐的技巧,但是我有一种感觉,我想念这里显然的解决方案。
预先感谢,在等待答复时,我将继续尝试不同的报价机制,以查看自己是否找到解决方案。
答案 0 :(得分:2)
尝试将您的选项放入数组中:
export LS_OPTIONS=( -lAhF --color=auto --group-directories-first --time-style=+%Y-%m-%d\ %H:%M:%S)
然后将其用作:
alias ls='ls "${LS_OPTIONS[@]}"'
答案 1 :(得分:1)
使用“而不是”
export LS_OPTIONS="-lAhF --color=auto --group-directories-first --time-style=+%Y-%m-%d\ %H:%M:%S"
alias ls="ls $LS_OPTIONS"
变量展开仅适用于“