Hey, je voudrais faire en sorte de créer des utilisateurs (avec la première lettre du prénom et 7 lettres du nom, et avec un tiret si c'est un nom composé) grâce a un fichier csv et ajouter pour chacun d'eux des dossiers personnels, jusque la tout va bien, mais ensuite je voudrais créer des répertoires partager a chacun des membres du groupe ca pose un problème, je ne voit pas trop d'où ca pourrais venir. voici le script
et voici le fichier csv : le but est de creer un répertoire pour chaque personne, un autre pour chaque groupe, et un autre pour les chefs de groupe. Les chefs de groupe sont : EMusk BArnault WBuffett MAmbani AOrtega JFlesher JBadgerM KGriffin MAdelson VPotanin LKa-shin TFrist et GAponte
quelque chose ne va pas dans ton script, je pense qu'il y a des problèmes dans les boucles (des éléments qui devraient être en dehors et qui n'y sont pas).
Je créerais des fonctions pour traîter mes chaînes de caractères et leur concaténation, par exemple
function traiter_chaine() {
local chaine=$1
IFS=';' read -a ADDR <<< "$chaine"
for i in "${!ADDR[@]}"; do
ADDR[$i]=$(echo "${ADDR[$i]}" | sed 's/ /-/g')
done
echo "${ADDR[@]}"
}
function traiter_liste() {
local premier_element=$(echo "${1:0:1}" | tr '[:upper:]' '[:lower:]')
local deuxieme_element=$(echo "$2" | tr '[:upper:]' '[:lower:]')
if [ ${#deuxieme_element} -gt 7 ]; then
deuxieme_element=${deuxieme_element:0:7}
fi
echo "${premier_element}${deuxieme_element}"
}
chaine_resultat=$(traiter_chaine "Elon;Hello World;20B;Technology")
IFS=' ' read -ra tableau <<< "$chaine_resultat"
resultat_final=$(traiter_liste "${tableau[0]}" "${tableau[1]}")
echo "Résultat final : $resultat_final"
seulement après je m'occuperai de la boucle itérant sur les lignes de mon fichier csv
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
quelque chose ne va pas dans ton script, je pense qu'il y a des problèmes dans les boucles (des éléments qui devraient être en dehors et qui n'y sont pas).
Je créerais des fonctions pour traîter mes chaînes de caractères et leur concaténation, par exemple
function traiter_chaine() {
local chaine=$1
IFS=';' read -a ADDR <<< "$chaine"
for i in "${!ADDR[@]}"; do
ADDR[$i]=$(echo "${ADDR[$i]}" | sed 's/ /-/g')
done
echo "${ADDR[@]}"
}
function traiter_liste() {
local premier_element=$(echo "${1:0:1}" | tr '[:upper:]' '[:lower:]')
local deuxieme_element=$(echo "$2" | tr '[:upper:]' '[:lower:]')
if [ ${#deuxieme_element} -gt 7 ]; then
deuxieme_element=${deuxieme_element:0:7}
fi
echo "${premier_element}${deuxieme_element}"
}
chaine_resultat=$(traiter_chaine "Elon;Hello World;20B;Technology")
IFS=' ' read -ra tableau <<< "$chaine_resultat"
resultat_final=$(traiter_liste "${tableau[0]}" "${tableau[1]}")
echo "Résultat final : $resultat_final"
seulement après je m'occuperai de la boucle itérant sur les lignes de mon fichier csv
C'est bon j'ai réglé tous les problemes, pas eu besoin de faire des boucles autres que celles déja présentes mais merci quand même !
Tant mieux si ça fonctionne, mais je n'ai jamais dis d'ajouter des boucles, relis mon message
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Création de répertoires partagé script shell(bash)
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)