Bonjour.
J’essaye d’utiliser l’outil parallel dans un script bash, dont le but est le déploiement du répertoire public d’un site fait avec le SGG Hugo.
Voici le script : PrivateBin
Dans la fonction _compress, je n’arrive pas à comprendre comment utiliser parallel pour mettre en parallèle l’appel à deux autres fonctions.
Function _compress() :
# Compress all thoses datas files. .eot, .otf and .ttf are font files
_compress() {
cd "${dir_local}" || exit 1
find . -type f -size +1024c -a \( \
-name "*.eot" -o -name "*.html" \
-o -name "*.otf" -o -name "*.svg" -o -name "*.ttf" \
-o -name "*.txt" -o -name "*.xml" \
\) | while read -r line;
do echo "Compress ${line}";
#find . ! -newer "${line}" | parallel -j "${nproc}" _brotli _gz;
find . ! -newer "${line}" | _brotli & _gz;
#find . ! -newer "${line}" | _brotli; _gz;
done
cd "$ROOT" || exit 1
}
Dans l’état actuel, la commande fonctionne bien ; elle exécute les deux commandes _brotly et _gz en parallèle, mais c’est du « parallélisme » fait par le système.
Si je commente la ligne fonctionnelle pour décommenter celle concernant l’utilisation du binaire parallel, lors de l’exécution le script me retourne que les commandes appelées n’existent pas !
Hors, elles existent bel et bien dans le script.
J’ai essayé de trouver des informations concernant l’usage de l’outil parallel appelant n-function, mais je n’en trouve pas dans le contexte de script bash.
Peut-être que quelqu’un ici a une idée pertinente ?!
Merci d’avance.
