Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 25/01/2010, 12h41   #1
Nouveau Membre du Club
 
Inscription : mars 2007
Messages : 178
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 178
Points : 36
Points : 36
Par défaut Minuscule à Majuscule dans une variable

Bonjour, je souhaiterai récupérer dans une variable A la transformation de ma variable B de minuscule en majuscule. J'essaie de trouver la syntaxe exacte a employé :

Je sais que je dois utiliser ca pour faire la transformation :
Je n'arrive pas à lui transmettre ma var B je testai des solutions du type :
Code :
1
2
 
A = tr 'a-z' 'A-Z' < $B
ou
Code :
1
2
 
A = echo $B | tr 'a-z' 'A-Z' mais à chaque fois j'ai des erreurs.
Merci d'avance pour votre aide
la_praline est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2010, 12h51   #2
Membre habitué
 
Inscription : mai 2007
Messages : 138
Détails du profil
Informations personnelles :
Âge : 59

Informations forums :
Inscription : mai 2007
Messages : 138
Points : 108
Points : 108
Code :
A="tutu" && A=`echo "$A" | tr "a-z" "A-Z"` && echo "resultat A=$A"
Les espaces ne sont pas tolérés avant et après le signe égal
noooop est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2010, 13h13   #3
Nouveau Membre du Club
 
Inscription : mars 2007
Messages : 178
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 178
Points : 36
Points : 36
Code :
1
2
3
 
VAR='echo "$TO_EXPORT_VAR" | tr "a-z" "A-Z"'
echo $VAR
voilà le résultat :
Code :
1
2
 
echo "$TO_EXPORT_VAR" | tr "a-z" "A-Z"
si j'enlève les ' '
Code :
1
2
3
 
VAR=echo "$TO_EXPORT_VAR" | tr "a-z" "A-Z"
echo $VAR
alors j'obtiens des erreurs.
la_praline est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2010, 13h16   #4
Membre habitué
 
Inscription : mai 2007
Messages : 138
Détails du profil
Informations personnelles :
Âge : 59

Informations forums :
Inscription : mai 2007
Messages : 138
Points : 108
Points : 108
tu confonds le caractère:
avec le caractère:
C'est ce dernier que j'ai mis dans mon exemple
noooop est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2010, 13h29   #5
Nouveau Membre du Club
 
Inscription : mars 2007
Messages : 178
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 178
Points : 36
Points : 36
En effet merci beaucoup !!

Quelle différence fondamentale entre ' et ` ??
la_praline est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2010, 13h30   #6
Modérateur
 
Avatar de al1_24
 
Homme Alain
Ingénieur développement décisionnel
Inscription : mai 2002
Messages : 4 299
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 51
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur développement décisionnel
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 4 299
Points : 6 902
Points : 6 902
C'est d'ailleurs pour cette raison qu'il est préférable d'utiliser $(...) à la place de `...` , c'est beaucoup plus lisible
__________________
Modérateur Langage SQL
Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
N'oubliez pas le bouton et pensez aux balises [code]
Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle
al1_24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2010, 13h35   #7
Nouveau Membre du Club
 
Inscription : mars 2007
Messages : 178
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 178
Points : 36
Points : 36
Qu'elle est l'usage du ` ` ou $(...) ??
la_praline est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2010, 13h52   #8
Membre habitué
 
Inscription : mai 2007
Messages : 138
Détails du profil
Informations personnelles :
Âge : 59

Informations forums :
Inscription : mai 2007
Messages : 138
Points : 108
Points : 108
La notation "quote" permet d'éviter que le shell n'expande la commande. Par exemple:

touch *.sh va toucher tous les fichiers *.sh
touch '*.sh' va toucher un fichier nommé: *.sh


La notation "back quote" et "$(...)" permet de récupérer le résultat de la commande et par exemple d'affecter ce résultat à une variable ou passer ce résultat en tant que valeur à une autre commande.

....Mais le monsieur qui t'a répondu pourrait l'exprimer mieux et dans un langage plus précis (je ne suis pas un grand spécialiste).
noooop est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2010, 13h59   #9
Modérateur
 
Avatar de al1_24
 
Homme Alain
Ingénieur développement décisionnel
Inscription : mai 2002
Messages : 4 299
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 51
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur développement décisionnel
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 4 299
Points : 6 902
Points : 6 902
man bash
Citation:
La substitution de commandes permet de remplacer le nom d'une commande par son résultat. Il en existe deux formes :


$(commande) ou
`commande`
Bash effectue la substitution en exécutant la commande et en la remplaçant par sa sortie standard, dont les derniers sauts de lignes sont supprimés. Les sauts de lignes internes ne sont pas supprimés mais peuvent disparaître lors du découpage en mots. La substitution de commande $(cat fichier) peut être remplacée par l'équivalent plus rapide $(< fichier).
Quand l'ancienne forme de substitution avec les backquotes ` est utilisée, le caractère antislash garde sa signification littérale, sauf s'il est suivi de $, `, ou \. La première backquote non protégée par un antislash termine la substitution de commande. Quand on utilise la forme $(commande), tous les caractères entre parenthèses gardent leurs valeurs littérales. Aucun n'est traité spécialement.
Les substitutions de commandes peuvent être imbriquées. Avec l'ancienne forme, il faut protéger les backquotes internes avec un backslash.
Si la substitution apparaît entre guillemets, le découpage des mots, et l'expansion des noms de fichiers ne sont pas effectués.
__________________
Modérateur Langage SQL
Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
N'oubliez pas le bouton et pensez aux balises [code]
Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle
al1_24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2010, 14h54   #10
Nouveau Membre du Club
 
Inscription : mars 2007
Messages : 178
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 178
Points : 36
Points : 36
Merci à tous
la_praline est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 18h13.


 
 
 
 
Partenaires

Hébergement Web