je n'arrive pas à récupérer la variable nommé langage d'une fenêtre whiptail à une autre , auriez vous une idée ?
il dois y avoir une histoire de local global, enfin je pense, voici mon code
#!/bin/bash
# on recherche la langue installé : locale-gen
# on récupère la deuxième ligne : sed -n 2p
# on supprime les espaces en début de ligne et récupère le 3eme argument : cut -d ' ' -f 3
# on supprime les . en fin de fichier : sed 's/[.]*$//'
{
for ((i=0; i<=100; i+=10))
do
sleep 0.1
echo $i
if [[ $i == 50 ]]; then
langage=`locale-gen | sed -n 2p | cut -d ' ' -f 3 | sed 's/[.]*$//'`
fi
done
} | whiptail --gauge "Recherche du langage système en cours ..." 6 60 0
if (whiptail --title "Heure GMT" \
--backtitle "Paramétrage du Raspberry pi" \
--yesno "Le langage actuel est :\n\n ${langage} \n\n Voulez vous le passer en FR ?" \
--yes-button "oui" \
--no-button "non" \
--separate-output 12 60) \
then
sed -i "s/^# *\(fr_FR.UTF-8\)/\1/" /etc/locale.gen
sed -i "s/en_GB.UTF-8 UTF-8/# en_GB.UTF-8 UTF-8/g" /etc/locale.gen
whiptail --title "Heure GMT" --backtitle "Paramétrage du Raspberry pi" --msgbox "Changement de langage effectué !!!" 12 60
else
whiptail --title "Heure GMT" --backtitle "Paramétrage du Raspberry pi" --msgbox "Changement de langage annulée !!!" 12 60
fi
J'ai trouvé finalement, après 2 heures de recherche et d'essais, voici le code :
#!/bin/bash
# on recherche la langue installé : locale-gen
# on récupère la deuxième ligne : sed -n 2p
# on supprime les espaces en début de ligne et récupère le 3eme argument : cut -d ' ' -f 3
# on supprime les . en fin de fichier : sed 's/[.]*$//'
for ((i=0; i<=100; i+=10))
do
sleep 0.1
echo $i
if [[ $i == 50 ]]; then
langage=`locale-gen | sed -n 2p | cut -d ' ' -f 3 | sed 's/[.]*$//'`
fi
done > >(whiptail --gauge "Recherche du langage système en cours ...." 12 50 0)
if (whiptail --title "Heure GMT" \
--backtitle "Paramétrage du Raspberry pi" \
--yesno "Le langage actuel est :\n\n ${langage[@]} \n\n Voulez vous le passer en FR ?" \
--yes-button "oui" \
--no-button "non" \
--separate-output 12 60) \
then
sed -i "s/^# *\(fr_FR.UTF-8\)/\1/" /etc/locale.gen
sed -i "s/en_GB.UTF-8 UTF-8/# en_GB.UTF-8 UTF-8/g" /etc/locale.gen
whiptail --title "Heure GMT" --backtitle "Paramétrage du Raspberry pi" --msgbox "Changement de langage effectué !!!" 12 60
else
whiptail --title "Heure GMT" --backtitle "Paramétrage du Raspberry pi" --msgbox "Changement de langage annulée !!!" 12 60
fi
Le titre est un élément important qui ne doit pas être négligé. N'oubliez pas cette règle simple : le titre idéal résume la question que vous allez poser en une petite phrase. Il doit permettre aux visiteurs de se repérer facilement dans le forum visité et d'identifier le sujet à sa seule lecture.
Vous pouvez utiliser divers préfixes comme [Erreur], [MySQL], [Compatibilité], etc... Aussi, pensez à consulter les règles propres à chaque forum (visibles dans les topics épinglés en haut des sections).
De plus, choisir un bon titre permet de rendre plus faciles les recherches des autres membres.
Les titres de type "besoin d'aide" ou "problème" ne sont pas tolérés.
Pour modifier votre titre, éditez le premier message de votre sujet.
(titre originel : Besoin d'aide pb de variable sript shell)