如果我有任何一个 xyz.PDF 文件,则此文件有效:
[ -e *.PDF* ] && echo 'yes'
但是,如果我有两个文件,例如
xyz.PDF
abc.PDF
我明白了
$ [ -e *.PDF* ] && echo 'yes'
-bash: [: sometstgg.PDF: binary operator expected
如何解决这个问题并允许 1 个或多个文件?
答案1
set -- *.PDF
[ "$#" -gt 0 ] && [ "$*" != "*.PDF" ] && echo 'yes'
可能有一个更好的解决方案,因为如果*.PDF
那里有实际名称的东西,这就会失败。
因为bash
我认为这就足够了
shopt -s nullglob
set -- *.PDF
[[ "$#" -gt 0 ]] && echo yes
在 中ksh93
,这似乎就足够了:
[ -e *.PDF ] && echo yes