我如何在 shell 脚本中检查任何存在两个文件?
这两个文件中哪一个存在或者两者都存在并不重要。
答案1
其他两个答案都运行test
两次。虽然这可行,但它存在两个进程分支的低效率问题。您可以使用以下命令在单个测试中完成“或”:
if [ -e file1 -o -e file2 ]; then ...
这会稍微更有效率。
答案2
if test -e file1 || test -e file2; then
# At least one of file1 or file2 exists
...
else
# Neither file1 nor file2 exists
fi
test -e
检查是否存在。您可能需要更具体的测试,例如-b
(存在并且是块特殊)、-c
(存在并且是字符特殊)、-d
(存在并且是目录)、-f
(存在并且是常规文件)等。
答案3
虽然/bin/test
手册页上test
没有给出名称,但您可以使用它test -a /path/to/file
来确定文件是否存在。
if [ -a file1 ] || [ -a file2 ]; then echo "I found something"; fi
||
实际上是一个逻辑“或”。