if [ Utv = "$ENV" ]
then for domain in 1 2 3
do for wls in stop clean cfi start
do wls wls"$wls" "$domain"
[ stop != "$wls" ] ||
remove "$domain"
done
done
fi
в поле ...
- это присвоение массива. Здесь вы назначаете итераторы цикла. Вы можете использовать предустановленный массив или просто встроить его, как я здесь. На самом деле не имеет смысла возиться с назначением некоторой переменной оболочки с единственной целью - назначить массив цикла для
- это вдвое труднее, и за ней не так легко следить. Это, конечно, только мое мнение.
В любом случае, поле в ...
на самом деле является необязательным, потому что есть предварительно установленный массив, который цикл for
будет по умолчанию использовать в любом случае - массив arg оболочки. По этой причине я считаю, что такие вещи имеют больше смысла в функции оболочки.
wls_lp(){
for wls in stop clean cfi start
do for domain
do set -x -- "-${-:--}" ${-:+"--"} "$@"
wls "wls$wls" "$domain"
[ stop != "$wls" ] ||
remove "$domain"
{ set +x "$@"; } 2>/dev/null
done;done
}
Если вы поместите эту функцию в свой сценарий, вы можете просто запустить весь цикл по списку доменов, например:
if [ Utv = "$ENV" ]
then wls_lp domain1 domain2 domain3
fi
El trabajo cron está tratando /var/cache/etckeeper/packagelist.pre-install
como evidencia de que se está procesando una instalación, por lo que no debería archivar nada todavía. No se supone que ese archivo sea un archivo de bloqueo, pero el trabajo cron lo está usando como sustituto.
Sin embargo, no me preocuparía particularmente por etckeeper
y cualquier archivo de bloqueo que tenga o no. Si desea una copia de seguridad consistente de un árbol administrado etckeeper
, use las funciones de VCS (pero no olvide los archivos ignorados ).
Los bloqueos dpkg
están documentados (aunque brevemente )como interfaces públicas enfrontend.txt
(/usr/share/doc/dpkg-dev/frontend.txt
endpkg-dev
).