[bash] substitution optionnelle
Résolu/Fermé
sbouli
Messages postés
200
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
14 août 2014
-
8 sept. 2010 à 14:49
dubcek Messages postés 18753 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 7 novembre 2024 - 9 sept. 2010 à 08:39
dubcek Messages postés 18753 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 7 novembre 2024 - 9 sept. 2010 à 08:39
A voir également:
- [bash] substitution optionnelle
- Bash permission non accordée - Forum Shell
- Bash écrire dans un fichier - Forum Shell
- Bingo bash free - Télécharger - Divers Jeux
- Bash path - Astuces et Solutions
- Bash: adduser : commande introuvable ✓ - Forum Debian
3 réponses
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
8 sept. 2010 à 14:57
8 sept. 2010 à 14:57
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
sbouli
Messages postés
200
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
14 août 2014
2
8 sept. 2010 à 15:01
8 sept. 2010 à 15:01
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
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
8 sept. 2010 à 15:07
8 sept. 2010 à 15:07
Et dans un terminal, que donne chez toi :
[jp@MDK-2010 ~]$ nom_serveur=$(hostname) [jp@MDK-2010 ~]$ echo $nom_serveur MDK-2010 [jp@MDK-2010 ~]$ nom_serveur=${nom_serveur//\./_} [jp@MDK-2010 ~]$ echo $nom_serveur MDK-2010 [jp@MDK-2010 ~]$
sbouli
Messages postés
200
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
14 août 2014
2
8 sept. 2010 à 15:10
8 sept. 2010 à 15:10
enorme ... pas d'erreur ....
je comprend pas ...
Stéphane
je comprend pas ...
Stéphane
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
8 sept. 2010 à 15:12
8 sept. 2010 à 15:12
Du fait la médisance n'est pas si médisante que ça ;-))
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
Modifié par lami20j le 8/09/2010 à 15:13
Modifié par lami20j le 8/09/2010 à 15:13
Re,
Et moi j'ai mis ça dans un script et pas d'erreur non plus.
Essaie juste ça
Et moi j'ai mis ça dans un script et pas d'erreur non plus.
Essaie juste ça
#!/bin/bash nom_serveur=$(hostname) echo "nom du serveur : ${nom_serveur}" nom_serveur=${nom_serveur//\./_} echo $nom_serveur
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
8 sept. 2010 à 15:14
8 sept. 2010 à 15:14
Re,
Sinon utilise sed
Sinon utilise sed
nom_serveur=$(hostname|sed 's/\./_/') echo "nom du serveur : ${nom_serveur}"
sbouli
Messages postés
200
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
14 août 2014
2
8 sept. 2010 à 15:19
8 sept. 2010 à 15:19
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
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
8 sept. 2010 à 15:21
8 sept. 2010 à 15:21
Re,
Oui elle existe mais ce n'est pas l'erreur qu'elle contient.
Le code de retour c'est $?
Oui elle existe mais ce n'est pas l'erreur qu'elle contient.
Le code de retour c'est $?
Variables spéciales
$$ PID du shell courant
$! PID du dernier travail lancé en arrière plan
$? code retour de la dernière commande
sbouli
Messages postés
200
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
14 août 2014
2
Modifié par sbouli le 8/09/2010 à 15:28
Modifié par sbouli le 8/09/2010 à 15:28
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
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
Modifié par lami20j le 8/09/2010 à 15:30
Modifié par lami20j le 8/09/2010 à 15:30
Re,
Signaler [PERL] bizarre retour de system
Oui c'est moi mais c'était pour Perl pas pour shell ;-)))
Alors là c'est à mon tour de rire ;-))))))
Signaler [PERL] bizarre retour de system
Oui c'est moi mais c'était pour Perl pas pour shell ;-)))
Alors là c'est à mon tour de rire ;-))))))
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
8 sept. 2010 à 15:31
8 sept. 2010 à 15:31
Re,
Entre autre, on dit que si on commence en Perl il faut oublier le shell et vice-versa ;-)
Entre autre, on dit que si on commence en Perl il faut oublier le shell et vice-versa ;-)
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
8 sept. 2010 à 15:31
8 sept. 2010 à 15:31
Le thread en question il parlait de PERL et non de SHELL (bash ou autre) ;-((
En shell, le $! renvoie le numéro de PID de la dernière commande lancée en arrière-plan.
En shell, le $! renvoie le numéro de PID de la dernière commande lancée en arrière-plan.
8 sept. 2010 à 14:58
Ni chez moi ;-((
Quel bash ?
Quel système ?
8 sept. 2010 à 14:59
Il y a aussi la possibilité que l'erreur est sur une autre ligne.
8 sept. 2010 à 15:05
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