(systeme linux, bash)
j'envoie mes mails en ligne de commande a l'aide de cat et mail.
Le probleme vient si je met un point d'exclamation dans le sujet:
[kevin@slackware:~]$ echo hop| mail kevin -s "yahou!"
bash: !": event not found
et le mail n'arrive pas.
Si j'essaie d'echapper le ! avec un backslach, comme ca
[kevin@slackware:~]$ echo hop | mail kevin -s "youhou\!"
le mail part, mais je recois:
[kevin@slackware:~]$ mail
Mail version 8.1 6/6/93. Type ? for help.
"/var/spool/mail/kevin": 1 messages 1 new
>N 1 kevin@rrrrrr.rrr Sun Feb 1 14:45 14/427 "youhou\!"
Et la, le backslash est parti avec. Comment est ce que je peux envoyer
un point d'exclamation dans le sujet d'un mail?
Merci
--
Kevin
Mais qu'est ce que c'est que ce...!?
-+- Les 100 choses que vous n'aimez pas entendre de la part du sysadmin -+-
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
moinsdespam
Dans ,
Bonjour,
youhou !
(systeme linux, bash)
Et il n'y a pas de man sur ton Linux ? ;-)
[:~]$ echo hop | mail kevin -s "youhou!"
Sans les "", ça marche, mais c'est pénible si tu veux mettre plusieurs mots : tu dois échaper chaque espace par un
echo hop | mail kevin -s youhou!
Et la, le backslash est parti avec. Comment est ce que je peux envoyer un point d'exclamation dans le sujet d'un mail?
Avec des simples quotes : echo hop| mail kevin -s 'youhou!'
Merci
Avec plaisir. Plus de détail dans le man bash : le sert d'échapement entre " s'il est suivi de $, `, ", , or <newline>.
-- Frédéric Bleu,e adj. et n. m. Qui est d'une couleur voisine du rouge, mais pas très : un ciel bleu, des yeux bleus, les flots bleus [..]. Fig. Bouch. : un steak bleu ; s'emploie pour désigner un steak rouge. (Pierre Desproges : D.S.U.É (et des BN))
Dans <slrnc1qm99.e87.Kevin@slackware.local.tux>,
Bonjour,
youhou !
(systeme linux, bash)
Et il n'y a pas de man sur ton Linux ? ;-)
[kevin@slackware:~]$ echo hop | mail kevin -s "youhou!"
Sans les "", ça marche, mais c'est pénible si tu veux mettre plusieurs
mots : tu dois échaper chaque espace par un
echo hop | mail kevin -s youhou!
Et la, le backslash est parti avec. Comment est ce que je peux envoyer
un point d'exclamation dans le sujet d'un mail?
Avec des simples quotes :
echo hop| mail kevin -s 'youhou!'
Merci
Avec plaisir.
Plus de détail dans le man bash : le sert d'échapement entre " s'il
est suivi de $, `, ", , or <newline>.
--
Frédéric
Bleu,e adj. et n. m. Qui est d'une couleur voisine du rouge, mais pas très : un
ciel bleu, des yeux bleus, les flots bleus [..]. Fig. Bouch. : un steak bleu ;
s'emploie pour désigner un steak rouge. (Pierre Desproges : D.S.U.É (et des BN))
Sans les "", ça marche, mais c'est pénible si tu veux mettre plusieurs mots : tu dois échaper chaque espace par un
echo hop | mail kevin -s youhou!
Et la, le backslash est parti avec. Comment est ce que je peux envoyer un point d'exclamation dans le sujet d'un mail?
Avec des simples quotes : echo hop| mail kevin -s 'youhou!'
Merci
Avec plaisir. Plus de détail dans le man bash : le sert d'échapement entre " s'il est suivi de $, `, ", , or <newline>.
-- Frédéric Bleu,e adj. et n. m. Qui est d'une couleur voisine du rouge, mais pas très : un ciel bleu, des yeux bleus, les flots bleus [..]. Fig. Bouch. : un steak bleu ; s'emploie pour désigner un steak rouge. (Pierre Desproges : D.S.U.É (et des BN))
Jean-Yves LENHOF
On Sun, 01 Feb 2004 19:53:13 +0000, Kevin DENIS wrote:
Bonjour,
(systeme linux, bash) j'envoie mes mails en ligne de commande a l'aide de cat et mail. Le probleme vient si je met un point d'exclamation dans le sujet:
[:~]$ echo hop| mail kevin -s "yahou!" bash: !": event not found
et le mail n'arrive pas.
Si j'essaie d'echapper le ! avec un backslach, comme ca
[:~]$ echo hop | mail kevin -s "youhou!"
le mail part, mais je recois:
[:~]$ mail Mail version 8.1 6/6/93. Type ? for help. "/var/spool/mail/kevin": 1 messages 1 new
N 1 Sun Feb 1 14:45 14/427 "youhou!"
Et la, le backslash est parti avec. Comment est ce que je peux envoyer un point d'exclamation dans le sujet d'un mail?
Merci
echo yo|mail -s 'toto ! tuti ! '
ca a l'air de passer...
On Sun, 01 Feb 2004 19:53:13 +0000, Kevin DENIS wrote:
Bonjour,
(systeme linux, bash)
j'envoie mes mails en ligne de commande a l'aide de cat et mail.
Le probleme vient si je met un point d'exclamation dans le sujet:
[kevin@slackware:~]$ echo hop| mail kevin -s "yahou!"
bash: !": event not found
et le mail n'arrive pas.
Si j'essaie d'echapper le ! avec un backslach, comme ca
[kevin@slackware:~]$ echo hop | mail kevin -s "youhou!"
le mail part, mais je recois:
[kevin@slackware:~]$ mail
Mail version 8.1 6/6/93. Type ? for help.
"/var/spool/mail/kevin": 1 messages 1 new
N 1 kevin@rrrrrr.rrr Sun Feb 1 14:45 14/427 "youhou!"
Et la, le backslash est parti avec. Comment est ce que je peux envoyer
un point d'exclamation dans le sujet d'un mail?
Merci
echo yo|mail -s 'toto ! tuti ! ' xxx@lenhof.eu.org
On Sun, 01 Feb 2004 19:53:13 +0000, Kevin DENIS wrote:
Bonjour,
(systeme linux, bash) j'envoie mes mails en ligne de commande a l'aide de cat et mail. Le probleme vient si je met un point d'exclamation dans le sujet:
[:~]$ echo hop| mail kevin -s "yahou!" bash: !": event not found
et le mail n'arrive pas.
Si j'essaie d'echapper le ! avec un backslach, comme ca
[:~]$ echo hop | mail kevin -s "youhou!"
le mail part, mais je recois:
[:~]$ mail Mail version 8.1 6/6/93. Type ? for help. "/var/spool/mail/kevin": 1 messages 1 new
N 1 Sun Feb 1 14:45 14/427 "youhou!"
Et la, le backslash est parti avec. Comment est ce que je peux envoyer un point d'exclamation dans le sujet d'un mail?
Merci
echo yo|mail -s 'toto ! tuti ! '
ca a l'air de passer...
TiChou
Dans l'article news:, Kevin DENIS écrivait :
Bonjour,
Bonsoir,
(systeme linux, bash) j'envoie mes mails en ligne de commande a l'aide de cat et mail. Le probleme vient si je met un point d'exclamation dans le sujet:
[:~]$ echo hop| mail kevin -s "yahou!" bash: !": event not found
et le mail n'arrive pas.
Le caractère ! fait partie des mots réservés de bash. En plus de servir d'opérateur de négation dans un test, il est aussi utilisé par défaut comme caractère de développement de l'historique. Tout comme le caractère * qui est intercepté et développé par le shell, le caractère !, s'il est présent dans la ligne de commande, est intercepté et développé en fonction des paramètres qui le suit immédiatement. Par exemple :
$ echo !-1
fera un echo de la dernière commande de l'historique.
$ !100
lancera la 100ème commande présente dans l'historique.
$ !man
lancera la dernière commande de l'historique commençant par la chaine "man".
Dans votre exemple :
[:~]$ echo hop| mail kevin -s "yahou!" bash: !": event not found
bash intercepte le !" et tente de le développer, ici en cherchant la dernière commande de l'historique commençant par " et on imagine bien que dans votre historique aucune commande ne commençant par " existe, d'où le message d'erreur de bash, évènement (de l'historique) non trouvé.
Si j'essaie d'echapper le ! avec un backslach, comme ca
[:~]$ echo hop | mail kevin -s "youhou!"
le mail part, mais je recois:
[:~]$ mail Mail version 8.1 6/6/93. Type ? for help. "/var/spool/mail/kevin": 1 messages 1 new
N 1 Sun Feb 1 14:45 14/427 "youhou!"
Et la, le backslash est parti avec. Comment est ce que je peux envoyer un point d'exclamation dans le sujet d'un mail?
Pour que le caractère ! ne soit pas interprété/développé par bash, vous avez plusieurs possibilités :
- désactiver l'expansion de l'historique, set +H - modifier la variable histchars qui contient les caractères de l'expansion de l'historique (!^#) - placer un espace juste après le caractère ! (ou un retour à la ligne bien sûr) - faire en sorte que le caractère ! soit placer à l'intérieur d'apostrophes ('')
Dans votre exemple :
$ echo hop | mail kevin -s youhou!
ou
$ echo hop | mail kevin -s "youhou! "
ou
$ echo hop | mail kevin -s 'youhou!'
ou
$ set +H $ echo hop | mail kevin -s "youhou!"
ou
$ histchars='%^#' $ echo hop | mail kevin -s "youhou!"
Dans tous les cas je vous renvois au manuel de bash.
Merci
De rien, en espérant avoir été clair.
-- TiChou
Dans l'article news:slrnc1qm99.e87.Kevin@slackware.local.tux,
Kevin DENIS <Kevin@nowhere.invalid> écrivait :
Bonjour,
Bonsoir,
(systeme linux, bash)
j'envoie mes mails en ligne de commande a l'aide de cat et mail.
Le probleme vient si je met un point d'exclamation dans le sujet:
[kevin@slackware:~]$ echo hop| mail kevin -s "yahou!"
bash: !": event not found
et le mail n'arrive pas.
Le caractère ! fait partie des mots réservés de bash. En plus de servir
d'opérateur de négation dans un test, il est aussi utilisé par défaut comme
caractère de développement de l'historique. Tout comme le caractère * qui
est intercepté et développé par le shell, le caractère !, s'il est présent
dans la ligne de commande, est intercepté et développé en fonction des
paramètres qui le suit immédiatement. Par exemple :
$ echo !-1
fera un echo de la dernière commande de l'historique.
$ !100
lancera la 100ème commande présente dans l'historique.
$ !man
lancera la dernière commande de l'historique commençant par la chaine "man".
Dans votre exemple :
[kevin@slackware:~]$ echo hop| mail kevin -s "yahou!"
bash: !": event not found
bash intercepte le !" et tente de le développer, ici en cherchant la
dernière commande de l'historique commençant par " et on imagine bien que
dans votre historique aucune commande ne commençant par " existe, d'où le
message d'erreur de bash, évènement (de l'historique) non trouvé.
Si j'essaie d'echapper le ! avec un backslach, comme ca
[kevin@slackware:~]$ echo hop | mail kevin -s "youhou!"
le mail part, mais je recois:
[kevin@slackware:~]$ mail
Mail version 8.1 6/6/93. Type ? for help.
"/var/spool/mail/kevin": 1 messages 1 new
N 1 kevin@rrrrrr.rrr Sun Feb 1 14:45 14/427 "youhou!"
Et la, le backslash est parti avec. Comment est ce que je peux envoyer
un point d'exclamation dans le sujet d'un mail?
Pour que le caractère ! ne soit pas interprété/développé par bash, vous avez
plusieurs possibilités :
- désactiver l'expansion de l'historique, set +H
- modifier la variable histchars qui contient les caractères de l'expansion
de l'historique (!^#)
- placer un espace juste après le caractère ! (ou un retour à la ligne bien
sûr)
- faire en sorte que le caractère ! soit placer à l'intérieur d'apostrophes
('')
Dans votre exemple :
$ echo hop | mail kevin -s youhou!
ou
$ echo hop | mail kevin -s "youhou! "
ou
$ echo hop | mail kevin -s 'youhou!'
ou
$ set +H
$ echo hop | mail kevin -s "youhou!"
ou
$ histchars='%^#'
$ echo hop | mail kevin -s "youhou!"
Dans tous les cas je vous renvois au manuel de bash.
(systeme linux, bash) j'envoie mes mails en ligne de commande a l'aide de cat et mail. Le probleme vient si je met un point d'exclamation dans le sujet:
[:~]$ echo hop| mail kevin -s "yahou!" bash: !": event not found
et le mail n'arrive pas.
Le caractère ! fait partie des mots réservés de bash. En plus de servir d'opérateur de négation dans un test, il est aussi utilisé par défaut comme caractère de développement de l'historique. Tout comme le caractère * qui est intercepté et développé par le shell, le caractère !, s'il est présent dans la ligne de commande, est intercepté et développé en fonction des paramètres qui le suit immédiatement. Par exemple :
$ echo !-1
fera un echo de la dernière commande de l'historique.
$ !100
lancera la 100ème commande présente dans l'historique.
$ !man
lancera la dernière commande de l'historique commençant par la chaine "man".
Dans votre exemple :
[:~]$ echo hop| mail kevin -s "yahou!" bash: !": event not found
bash intercepte le !" et tente de le développer, ici en cherchant la dernière commande de l'historique commençant par " et on imagine bien que dans votre historique aucune commande ne commençant par " existe, d'où le message d'erreur de bash, évènement (de l'historique) non trouvé.
Si j'essaie d'echapper le ! avec un backslach, comme ca
[:~]$ echo hop | mail kevin -s "youhou!"
le mail part, mais je recois:
[:~]$ mail Mail version 8.1 6/6/93. Type ? for help. "/var/spool/mail/kevin": 1 messages 1 new
N 1 Sun Feb 1 14:45 14/427 "youhou!"
Et la, le backslash est parti avec. Comment est ce que je peux envoyer un point d'exclamation dans le sujet d'un mail?
Pour que le caractère ! ne soit pas interprété/développé par bash, vous avez plusieurs possibilités :
- désactiver l'expansion de l'historique, set +H - modifier la variable histchars qui contient les caractères de l'expansion de l'historique (!^#) - placer un espace juste après le caractère ! (ou un retour à la ligne bien sûr) - faire en sorte que le caractère ! soit placer à l'intérieur d'apostrophes ('')
Dans votre exemple :
$ echo hop | mail kevin -s youhou!
ou
$ echo hop | mail kevin -s "youhou! "
ou
$ echo hop | mail kevin -s 'youhou!'
ou
$ set +H $ echo hop | mail kevin -s "youhou!"
ou
$ histchars='%^#' $ echo hop | mail kevin -s "youhou!"
Dans tous les cas je vous renvois au manuel de bash.