[bash] substitution optionnelle
Résolu
sbouli
Messages postés
200
Date d'inscription
Statut
Membre
Dernière intervention
-
dubcek Messages postés 18789 Date d'inscription Statut Contributeur Dernière intervention -
dubcek Messages postés 18789 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
j'ai dans un script bash c'est 2 lignes :
quand le nom de serveur contient un ou plusieurs point, pas de soucis, les points sont changés en "_" par contre si le nom du serveur (hostname) ne contient pas de ".", j'ai droit à un :
Bad substitution
je pensais pourtant que le remplacement aurait lieu si et seulement si le "." était présent ... existe-il un moyen élégant de transformer la substitution en option ?
Merci pour votre aide !
Stéphane
j'ai dans un script bash c'est 2 lignes :
nom_serveur=$(hostname) nom_serveur=${nom_serveur//\./_}
quand le nom de serveur contient un ou plusieurs point, pas de soucis, les points sont changés en "_" par contre si le nom du serveur (hostname) ne contient pas de ".", j'ai droit à un :
Bad substitution
je pensais pourtant que le remplacement aurait lieu si et seulement si le "." était présent ... existe-il un moyen élégant de transformer la substitution en option ?
Merci pour votre aide !
Stéphane
A voir également:
- [bash] substitution optionnelle
- Bingo bash - Télécharger - Divers Jeux
- Bash list ✓ - Forum Shell
- Bash permission non accordée - Forum Shell
- Bash pause ✓ - Forum Shell
- Bash addition - Forum Programmation
3 réponses
Salut,
Pas chez moi
Pas chez moi
~ $ a=blabla ~ $ b="bla.bla" ~ $ echo $a blabla ~ $ echo $b bla.bla ~ $ echo ${b/\./_} bla_bla ~ $ echo ${a/\./_} blabla
hello lami20j;
pas mal ....
j'ai ajouté un echo pour voir :
et j'ai bien :
nom du serveur : companysmtp3
/superchemin/pleindesousrep/script_de_la_mort.sh: 65: Bad substitution
....
comprend pas ...
Stéphane
pas mal ....
j'ai ajouté un echo pour voir :
63 nom_serveur=$(hostname) 64 echo "nom du serveur : ${nom_serveur}\n"; 65 nom_serveur=${nom_serveur//\./_}
et j'ai bien :
nom du serveur : companysmtp3
/superchemin/pleindesousrep/script_de_la_mort.sh: 65: Bad substitution
....
comprend pas ...
Stéphane
par contre j'ai cette erreur maintenant :
$!: unbound variable
$! n'existe pas en /bin/bash ? pour récupérer l'erreur systeme ?
Stéphane
$!: unbound variable
$! n'existe pas en /bin/bash ? pour récupérer l'erreur systeme ?
Stéphane
oui, je me base bien sur le $? pour le code retour mais on m'avais indiqué $! pour obtenir des infos complémentaires en cas d'erreur au niveau du systeme. dans ce thread : https://forums.commentcamarche.net/forum/affich-18962490-perl-bizarre-retour-de-system#p18975703
mort de rire, c'est toi qui me l'a appris : "Salut,
Mets aussi $! dans ton die, pour voir l'erreur système "
Stéphane
mort de rire, c'est toi qui me l'a appris : "Salut,
Mets aussi $! dans ton die, pour voir l'erreur système "
Stéphane
Ni chez moi ;-((
Quel bash ?
Quel système ?
Il y a aussi la possibilité que l'erreur est sur une autre ligne.
bash : GNU bash, version 3.2.39(1)-release (i486-pc-linux-gnu)
systeme : ubuntu
# cat /etc/*release*
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=8.04
DISTRIB_CODENAME=hardy
DISTRIB_DESCRIPTION="Ubuntu 8.04.4 LTS"
Stéphane