#!/bin/sh a=$1 # A est la sous chaine de $a qui commence au 0ieme caractere # et qui a une longueur de 1 caractere : A=${a:0:1} # mettre en majuscule cette premiere lettre B=`echo $A |tr -s a-z A-Z` # C est la sous chaine de $a qui commence au caractere d'indice 1 # c'est à dire $a moins son premier caractere. C=${a:1} # mettre en minuscule ces caracteres D=`echo $C |tr -s A-Z a-z` echo $B$D
Forum Astuces.divers [Terminal] mettre le premier caractère d'un mot en majuscule et les autres caractères en minuscule en shell
source : expansion des paramètres (man sh)
# Plus rapide
Posté par Wi][ish . Évalué à 1.
ESCAPE suivit de "l" (L minuscule) => lowercase le mot suivant
ESCAPE suivit de "u" => uppercase le mot suivant
Et pour le cas de dugenoux :
ESCAPE suivit de "c" => uppercase la première lettre et lowercase toutes les autres du mot suivant
[^] # Re: Plus rapide
Posté par Prae . Évalué à 3.
tandis que le tien est plus orienté "interactivité"
# bash != sh...
Posté par Florent Rougon (site web personnel) . Évalué à 1.
La méthode d'extraction de sous-chaîne d'une variable que vous proposez est spécifique à bash. Elle ne fonctionnera pas avec n'importe quel /bin/sh.
# À l'essentiel
Posté par wwp (site web personnel) . Évalué à 1.
echo "`echo ${1:0:1}|tr a-z A-Z`${1:1}"
# cela fonctionne egalement sur les sh POSIX
Posté par xavier . Évalué à 1.
"${X%"${X#?}"}"
et
"${X#?}"
# Regexp powa
Posté par Quentin Delance . Évalué à 0.
Noter la difference entre \u (un caractere) et \L (plusieurs caracteres)
# Perl est parfois plus lisible
Posté par arhuman . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.