The BashFAQ
Отмечено, что у Shellter есть несколько хороших примеров. Основная идея, которую я здесь перевожу, чтобы страница была автономной, состоит в том, чтобы использовать операцию, которая одновременно проверяет и устанавливает: mkdir
mkdir потерпит неудачу, если каталог существует, и сделает это, если его нет. Это атомарная операция, и вы можете использовать ее примерно так, чтобы сделать мьютекс в вашем сценарии оболочки (из приведенного выше BashFAQ)
# Bourne
lockdir=/tmp/myscript.lock
if mkdir "$lockdir"
then # directory did not exist, but was created successfully
echo >&2 "successfully acquired lock: $lockdir"
# continue script
else # failed to create the directory, presumably because it already exists
echo >&2 "cannot acquire lock, giving up on $lockdir"
exit 0
fi
перейдите по ссылке для более подробной информации об очистке и других элементах.