如何使用 ZSH 测试文件是否不存在?

Dav*_*e F 13 zsh test

这个问题是关于 ZSH,而不是 bash。

我的.zshrc文件中有以下几行。每当我打开一个终端时,我都会收到一个no matches found错误,引用带有if语句的行。

if [[!( -a ~/.zkbd/$TERM-${${DISPLAY:t}:-$VENDOR-$OSTYPE} )]]; then
    zkbd
fi
Run Code Online (Sandbox Code Playgroud)

我通读了 ZSH 文档,我的if陈述似乎是正确的。我不明白为什么我收到错误。

zkbd如果文件.zkbd夹中的文件不存在,我想要发生的是让实用程序运行。

Dav*_*e F 17

感谢 don_crissti 为我回答这个问题。

正确的if块在下面。

if [[ ! -a ~/.zkbd/$TERM-${${DISPLAY:t}:-$VENDOR-$OSTYPE} ]]; then
    zkbd
fi
Run Code Online (Sandbox Code Playgroud)

  • 对于像我这样的 ADHD 人,解决方案是 [[ -a FILE_NAME ]],“! -a”询问文件是否不存在。 (9认同)
  • @azorius 我最初的问题是询问如何测试文件是否不存在。 (2认同)