Чтобы добавить к решению Анджея, вы можете установить блокировку для более широкой области, чем только один рецепт, если вам нужно, с помощью специальной переменной LOCKFILE
.
# Only one instance of Procmail can enter this region
LOCKFILE=.procmail-critical-region.lock
:0
* condition
| action
value=`program`
:0
* another condition
| another action
# We are done now; okay for another instance to enter
LOCKFILE=
В принципе, у вас может быть несколько критических секций, защищенных одним и тем же файлом блокировки, хотя мне сложно представить сценарий, в котором это было бы действительно полезно.
выполните сценарий, как показано ниже.
./ script.sh abc / def / ghi / jkl
#!/bin/bash
DIR_LIST=${1}
IFS=/
for DIR_NAME in ${DIR_LIST}
do
mkdir ${DIR_NAME}
cd ${DIR_NAME}
done
Использование рекурсивной функции:
#!/bin/bash
mkdir_p() {
local path=$1
local parent=${path%/*}
[[ ${path} != /* ]] && parent=${PWD}/${parent}
[[ ! -d $parent ]] && mkdir_p "${parent}"
[[ ! -d $path ]] && mkdir "${path}"
}
mkdir_p "${1}"