Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1462 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [PROMPT] Erreur de syntax

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PROMPT] Erreur de syntax

n°1076649
hpoz
Posté le 25-09-2008 à 09:03:52  profilanswer
 

Bonjour,
 
Depuis que j'ai modifié mon prompt afin d'avoir les logs d'history timestampé, j'ai un message d'erreur bash à chaque commande que je tape :
 

-bash: [: -eq: unary operator expected


 
 
Dans mon /etc/bashrc :

H2=0
export PROMPT_COMMAND='H=`history 1` ; H1=${H:0:6} ; [ '$H1' -eq '$H2' ] || echo `date +"%F %T"` "$USER" "${H:6}" >> /var/log/bash_logs ; H2=$H1`


 
Je pense que cela vient du faite que j'ai un chiffre dans mon prompt :  
 

[root@mail2 root]


 
Car sur un autre serveur ou j'ai fais la même config, et ou il n'y a pas de chiffre dans mon prompt, je n'ai pas ce problème.
 
 
Savez-vous comment je peux modifier mon PROMPT_COMMAND afin de régler ce problème.
 
Merci
 
Cordialement,


Message édité par hpoz le 25-09-2008 à 10:45:49
mood
Publicité
Posté le 25-09-2008 à 09:03:52  profilanswer
 

n°1076767
matafan
Posté le 25-09-2008 à 12:54:37  profilanswer
 

Le message d'erreur veut dire que H1 est vide.

n°1076875
hpoz
Posté le 25-09-2008 à 17:09:57  profilanswer
 

non car quand je fais echo $H1 j'ai bien une valeur :)

n°1077132
matafan
Posté le 26-09-2008 à 12:47:12  profilanswer
 

Je te dis qu'il est vide. Comme il est en dehors des simple quotes, il est interprété au moment où tu définis PROMPT_COMMAND, pas au moment où PROMPT_COMMAND est interprété... Par contre tu définis H1 entre les guillemets, donc l'affectation est faite quand PROMPT_COMMAND est interprété, pas quand il est défini.
 
Autrement dit, ton PROMPT_COMMAND vaut ça :

H=`history 1` ; H1=${H:0:6} ; [ -eq 0 ] || echo `date +"hhhhh%F %T"` "$USER" "${H:6}" >> /var/log/bash_logs ; H2=$H1


Ce qui n'est évidemment pas correct.
 
Donc enlève ces simple quotes autour de $H1 et de $H2, et ça devrait marcher.
 
Ah et aussi, c'est quoi ce back-quote à la fin de ta ligne ? Ca devrait être un simple quote.

n°1087960
sputnick
bip...bip...bip...bip...bi...b
Posté le 06-11-2008 à 21:54:43  profilanswer
 

Si tu es en bash, ya des variable qui se reglent pour eviter les doublons et pour ajouter la date.
Pas besoin de code gruik :)
 
Je te propose  dans ~.bashrc :

Code :
  1. export HISTCONTROL=ignoredups
  2. export export HISTTIMEFORMAT='%F %T

'
 
Ce qui donne :

Code :
  1. $ ls .bashrc>/dev/null
  2. $ ls .bashrc>/dev/null
  3. $ ls .bashrc>/dev/null
  4. $ history|tail -5
  5. 2133  2008-11-06 21:56:09 bar
  6. 2134  2008-11-06 21:56:11 base
  7. 2135  2008-11-06 21:56:14 zope
  8. 2136  2008-11-06 21:56:18 ls .bashrc>/dev/null
  9. 2137  2008-11-06 21:56:23 history|tail -5
  10. 2008-11-06 21:54:00 history|tail -5
  11. $


Message édité par sputnick le 06-11-2008 à 21:56:53
n°1088231
hpoz
Posté le 08-11-2008 à 00:00:34  profilanswer
 

Oui mais la version de bash que j'ai ne permet pas d'utiliser ces options.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [PROMPT] Erreur de syntax

 

Sujets relatifs
Erreur de segmentation sur script bashErreur lors de tests if
Samba+LDAP>Erreur de connection... a 127.0.01fatale erreur : urpmi verrouillé (fait ch***)
erreur de compliationerreur lors de la compilation sysvinit
PB AIX 5.3 erreur 3004-10 [Résolu]Erreur sur une copie en (md0 Raid5) : assez fou comme truc !
Smartd et erreur de permissionsDebian sdg : spinning up disk(quelqu'un a déja rencontrer cette erreur
Plus de sujets relatifs à : [PROMPT] Erreur de syntax


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR