如果我想检查单个文件是否存在,我可以使用test -e filenameor来测试它[ -e filename ]。
test -e filename
[ -e filename ]
假设我有一个 glob,我想知道是否存在名称与 glob 匹配的文件。glob 可以匹配 0 个文件(在这种情况下我不需要做任何事情),或者它可以匹配 1 个或多个文件(在这种情况下我需要做一些事情)。如何测试 glob 是否有任何匹配项?(我不在乎有多少匹配项,如果我可以用一个if语句而不是循环来做到这一点,那将是最好的(因为我发现它最易读)。
if
(test -e glob*如果 glob 匹配多个文件,则失败。)
test -e glob*
compgen -G "<glob-pattern>"
转义模式,否则它将被预先扩展为匹配项。
退出状态为:
stdout是 与 glob 匹配的文件 列表。我认为就简洁性和最大程度地减少潜在副作用而言,这是最佳选择。
stdout
例子:
if compgen -G "/tmp/someFiles*" > /dev/null; then echo "Some files exist." fi