Оба параметра "-a" и "-e" в документации Bash (http://www.gnu.org/software/bash/manual/bashref.html#Bash-Conditional-Expressions):
-a file
True if file exists.
-e file
True if file exists.
Попытавшись понять, в чем разница, я запустил следующий script:
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/Результаты существуют и являются каталогом. И это то, что я получаю:
-e
-a
! -a
который кажется немного странным (обратите внимание на "-a" и "! -a" ). Но когда я использую двойные скобки (например, if [[ -e ${resin_dir} ]]
) в аналогичном script, он дает разумный вывод:
-e
-a
Итак:
- В чем разница между параметрами "-a" и "-e"?
- Почему "-a" производит странный результат при использовании внутри отдельных скобок?