Это недействительно или полезно bash. Это просто приведет к двум различным сообщениям об ошибках.
Вместо этого предполагаемый код был следующим:
#!/bin/bash
...
exec {LOCK}> foo.out
flock -x ${LOCK}
...
. Для открытия используется:
{name}>
для записи и присвоения номера fd name
exec
, чтобы применить перенаправление к току, оставив открытым fd на время действия оболочки flock
для блокировки назначенного fd, который он унаследует от текущей оболочки
Таким образом, он эффективно создает мьютекс на основе файла foo.out
, гарантируя, что только один экземпляр может запускать вещи после flock
в время. Любые другие экземпляры будут ждать до завершения предыдущего.