我正在编写一个 zsh 脚本,我的脚本中的以下行失败:
rm -f ${ZT_BASE_PATH}/*_${(q)ZT_SESSION_ID}
有错误
function:lineno: no matches found: /home/user/.zsh/.tmux_base/*_\$0
但是,当我将违规行替换为
rm -f /home/user/.zsh/.tmux_base/*_\$0
它成功了,删除了正确的文件。在第一种情况下,通配符不起作用是有原因的吗?这是 zsh 版本和 setopt 输出:
$ zsh --version
zsh 5.0.2 (i686-pc-linux-gnu)
$ setopt
alwaystoend
autocd
autocontinue
autonamedirs
autopushd
chaselinks
completealiases
completeinword
correct
extendedglob
extendedhistory
noflowcontrol
noglobalrcs
globcomplete
globdots
histignorealldups
histignoredups
histreduceblanks
histsavenodups
histverify
nohup
incappendhistory
interactive
interactivecomments
listpacked
listrowsfirst
login
longlistjobs
markdirs
monitor
promptsubst
pushdignoredups
pushdminus
pushdsilent
pushdtohome
rcexpandparam
rematchpcre
shinstdin
transientrprompt
zle