Interprétation d'un /* et */ par un bash
Fermé
agyh81
-
12 sept. 2008 à 13:18
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 12 sept. 2008 à 19:33
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 12 sept. 2008 à 19:33
A voir également:
- Interprétation d'un /* et */ par un bash
- Retour à la ligne bash ✓ - Forum Shell
- Bash permission non accordée - Forum Shell
- Bingo bash free - Télécharger - Divers Jeux
- Bash path - Astuces et Solutions
- Bash: adduser : commande introuvable ✓ - Forum Debian
9 réponses
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
12 sept. 2008 à 13:29
12 sept. 2008 à 13:29
Salut,
A quel niveau le caractère est interprété, commande ? variable ?
A quel niveau le caractère est interprété, commande ? variable ?
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
12 sept. 2008 à 13:33
12 sept. 2008 à 13:33
Salut,
tu peux utiliser les apostrophes simples ou mettre un backslash avant les caractères
encore mieux sera de nous montrer ton script ou la partie concernée ;-)
tu peux utiliser les apostrophes simples ou mettre un backslash avant les caractères
encore mieux sera de nous montrer ton script ou la partie concernée ;-)
Salut,
Je vous remercie pour vos réponses.
Voici la partie du script concerné:
#$1:le fichier concerné
cat $1 | while read ligne
do
i=$(expr $i + 1)
#Nombres de caractères de la ligne courante ET suppression des vides
Nombre_Caracteres=`echo $ligne | wc -c | tr -d ' '`
test=$Nombre_Caracteres
if [ "$test" -gt 100 ]
then
#On récupère la ligne correspondante tronquée au 100ème caractères.
ligneTronquee=`echo $ligne | cut -c1-100`
message=`echo -e "ligne $i: $ligneTronquee ... "`
echo $message >> $Log
fi
done
Merci d'avance.
Je vous remercie pour vos réponses.
Voici la partie du script concerné:
#$1:le fichier concerné
cat $1 | while read ligne
do
i=$(expr $i + 1)
#Nombres de caractères de la ligne courante ET suppression des vides
Nombre_Caracteres=`echo $ligne | wc -c | tr -d ' '`
test=$Nombre_Caracteres
if [ "$test" -gt 100 ]
then
#On récupère la ligne correspondante tronquée au 100ème caractères.
ligneTronquee=`echo $ligne | cut -c1-100`
message=`echo -e "ligne $i: $ligneTronquee ... "`
echo $message >> $Log
fi
done
Merci d'avance.
dubcek
Messages postés
18752
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
3 octobre 2024
5 619
12 sept. 2008 à 15:23
12 sept. 2008 à 15:23
hello
mettre des " pour que le shell n'interprète pas * contenu dans ligne
ligneTronquee=`echo "$ligne" | cut -c1-100`
mettre des " pour que le shell n'interprète pas * contenu dans ligne
ligneTronquee=`echo "$ligne" | cut -c1-100`
merci pour la réponse,
En fait, j'ai essayé ligneTronquee=`echo "$ligne" | cut -c1-100` mais ça fonctionne dans certains cas et ne fonctionne pas dans d'autres cas (J'ai encore cette interprétation du /*)
De plus , j'ai l'impression qu'il interpréte les * dans certaines séquences du genre "char * pTyPr" par exemple. par "01ReBuildAllUnmanaged.vbs 02ReBuildAllTech.vbs 03ReBuildAllBeans.vbs 04ReBuildConversion.vbs 05ReBuildAllAppliCaprice.vbs 06ReBuildAllAppliJazz.vbs...." ...
Et même les ' ' ne fonctionnent pas.
En fait, j'ai essayé ligneTronquee=`echo "$ligne" | cut -c1-100` mais ça fonctionne dans certains cas et ne fonctionne pas dans d'autres cas (J'ai encore cette interprétation du /*)
De plus , j'ai l'impression qu'il interpréte les * dans certaines séquences du genre "char * pTyPr" par exemple. par "01ReBuildAllUnmanaged.vbs 02ReBuildAllTech.vbs 03ReBuildAllBeans.vbs 04ReBuildConversion.vbs 05ReBuildAllAppliCaprice.vbs 06ReBuildAllAppliJazz.vbs...." ...
Et même les ' ' ne fonctionnent pas.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
dubcek
Messages postés
18752
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
3 octobre 2024
5 619
12 sept. 2008 à 15:46
12 sept. 2008 à 15:46
ne pas oublier celle ci
Nombre_Caracteres=`echo $ligne | wc -c | tr -d ' '`
Nombre_Caracteres=`echo $ligne | wc -c | tr -d ' '`
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
12 sept. 2008 à 16:04
12 sept. 2008 à 16:04
Je crois que ça dépend aussi de la version de bash et des options activées/désactivées de celui-ci (je pense à shopt et ses *glob") ;-\
On peut avoir un bout d'un de tes fichiers histoire de tester ?
On peut avoir un bout d'un de tes fichiers histoire de tester ?
voici un bout de code :
/* Détermine si un visuel peut rester ouvert à l'apparition d'un nouveau visuel*/
virtual bool PeutResterOuverte(int id_nouveau_visuel);
/* Précise les éléments de disposition des visuels*/
/* debut Test de la CB */
void CCB::RemplirListeCB(char *pTypPr);
void CCB::RemplirListeFact(void);
/* void ChargeListeFacturationModA(long pNoPrPCM, char * pTyPr);*/ /* GGRZ */
long ChargeListeFacturationModP(long pNoPrPCM, char * pTyPr);
void CCarteBleue::SetFlecheTri(void);
void CCarteBleue::BasculeModA(void);
/* debut Test de la CB */
/* Détermine si un visuel peut rester ouvert à l'apparition d'un nouveau visuel*/
virtual bool PeutResterOuverte(int id_nouveau_visuel);
/* Précise les éléments de disposition des visuels*/
/* debut Test de la CB */
void CCB::RemplirListeCB(char *pTypPr);
void CCB::RemplirListeFact(void);
/* void ChargeListeFacturationModA(long pNoPrPCM, char * pTyPr);*/ /* GGRZ */
long ChargeListeFacturationModP(long pNoPrPCM, char * pTyPr);
void CCarteBleue::SetFlecheTri(void);
void CCarteBleue::BasculeModA(void);
/* debut Test de la CB */
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
12 sept. 2008 à 19:33
12 sept. 2008 à 19:33
Tiens tu peux essayer ça :
#set -xv #$1:le fichier concerné sed 's|\*|\\\*|g' < "$1" | while read ligne do i=$(expr $i + 1) #Nombres de caractères de la ligne courante ET suppression des vides Nombre_Caracteres=`echo "$ligne" | wc -c | tr -d ' '` test="$Nombre_Caracteres" if [ "$test" -gt 100 ] then #On récupère la ligne correspondante tronquée au 100ème caractères. ligneTronquee=`echo "$ligne" | cut -c1-100` message=`echo -e "ligne $i: $ligneTronquee ... "` echo "$message" >> Log fi done