[bash] substitution optionnelle
Résolu
sbouli
Messages postés
208
Statut
Membre
-
dubcek Messages postés 19021 Statut Contributeur -
dubcek Messages postés 19021 Statut Contributeur -
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 free - Télécharger - Divers Jeux
- Bash pause ✓ - Forum Shell
- Bash addition - Forum Programmation
- Bash permission non accordée - Forum Shell
- Bash list ✓ - Forum Shell
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