最佳答案
关于 Bash 文档中的 -a
和 -e
选项,都说:
-a file
True if file exists.
-e file
True if file exists.
为了找出区别,我运行了下面的脚本:
resin_dir=/Test/Resin_wheleph/Results
if [ -e ${resin_dir} ] ; then
echo "-e ";
fi
if [ ! -e ${resin_dir} ] ; then
echo "! -e";
fi
if [ -a ${resin_dir} ] ; then
echo "-a";
fi
if [ ! -a ${resin_dir} ] ; then
echo "! -a";
fi
/Test/Resin_wheleph/Results
存在并且是一个目录:
-e
-a
! -a
这似乎有点奇怪(注意 -a
和 ! -a
)。但是当我在类似的脚本中使用双括号(例如 if [[ -e ${resin_dir} ]]
)时,它会给出合理的输出:
-e
-a
所以:
-a
和 -e
选项的区别是什么?-a
会产生一个奇怪的结果?