Dominique.fournier38.fr Imprimer cette page

Document Mes Confs

Page d'accueil
Sommaire | Précédent | Suivant
Mon .bashrc (Télécharger)
# .bashrc

# BASHRC DE DOMINIQUE

# NE PAS UTILISER exit dans ce fichier sinon...Fermeture de la fenetre en cours

# Peut etre telecharge sur :
# wget -N -nv http://dominique.fournier38.fr/partage/.bashrc

# Il ne faut rien afficher si on n'est pas avec un terminal defini sinon ca 
# plante les scp...

BASHRCVERSION="17/07/2017-1"

# Source global definitions
if [ -f /etc/debian_version ] && [ -f /etc/bash.bashrc ]; then
  . /etc/bash.bashrc
elif [ -f /etc/redhat-release ] && [ -f /etc/bashrc ]; then
  . /etc/bashrc
fi

unalias -a

if [ "x$BASH_COMPLETION" == "x" ] && [ -f /etc/bash_completion ]; then
  # C'est trop long a charger : On le prend que si c'est pas deja fait
  # Et ca va pas s'ameliorer....
  . /etc/bash_completion
fi

HOSTNAME_SHORT=`hostname --short`
if [ "$HOSTNAME_SHORT" == "localhost" ]; then
   case "$TERM" in
     xterm*|rxvt*)
       echo -n "Attention : 'hostname -s' vaut localhost (Pas de selection correcte"
       echo " pour le .bashrc)"
       echo -n "Si ce message s'affiche dans scp, il faut corriger le serveur "
       echo "et refaire le scp"
     ;;
   esac
elif [ "$HOSTNAME_SHORT" == "fournier38" ]; then
  HOSTNAME_SHORT="fournier38.fr"
  HOSTNAME="fournier38.fr"
fi
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
  # Pour gnome-terminal
  # La partie 'echo -ne ..." permet d'afficher le nom de la machine dans un
  # terminal gnome. Elle ne doit pas etre employee dans une console linux
  PROMPT_COMMAND='let exitstatus=$? ; if [[ ${exitstatus} != 0 ]] ; then echo "[Exit ${exitstatus}]"; let statut=0; fi ; echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007";RELOADBASHRC'
  echo "Version de .bashrc $BASHRCVERSION"
  function color()
  {
    # Colorie le texte que l'on reçoit par stdin selon le critère de recherche
    # passé en premier argument, et selon la couleur optionnelle du second arg
    # usage : cat /etc/passwd | color "recherche" "couleur"
    # Liste des couleurs par "color 'recherche' help"
    if [ -z $1 ]; then
      echo "cat /etc/passwd | color 'recherche' 'couleur'"
      echo "Couleurs : rouge gris vert violet marine rose cyan bleu gras"
      return
    fi
    case "$2" in
    "rouge")     GREP_COLOR="01;31" egrep --color=always --line-buffered "^|$1" ;;
    "gris")      GREP_COLOR="01;30" egrep --color=always --line-buffered "^|$1" ;;
    "vert")      GREP_COLOR="01;32" egrep --color=always --line-buffered "^|$1" ;;
    "violet")    GREP_COLOR="01;33" egrep --color=always --line-buffered "^|$1" ;;
    "marine")    GREP_COLOR="01;34" egrep --color=always --line-buffered "^|$1" ;;
    "rose")      GREP_COLOR="01;35" egrep --color=always --line-buffered "^|$1" ;;
    "cyan")      GREP_COLOR="01;36" egrep --color=always --line-buffered "^|$1" ;;
    "bleu")      GREP_COLOR="01;37" egrep --color=always --line-buffered "^|$1" ;;
    "gras")      GREP_COLOR="01;38" egrep --color=always --line-buffered "^|$1" ;;
    "help")      echo "Couleurs : rouge gris vert violet marine rose cyan bleu gras" ;;
    *)           GREP_COLOR="01;31" egrep --color=always --line-buffered "^|$1" ;;
    esac
  }
  alias resetTerm='tput reset'
  ;;
linux|screen)
  PROMPT_COMMAND='let exitstatus=$? ; if [[ ${exitstatus} != 0 ]] ; then echo "[Exit ${exitstatus}]"; let statut=0; fi ; RELOADBASHRC'
  echo "Version de .bashrc $BASHRCVERSION"
  # Supprime la cloche en console (et dans les terminaux)
  setterm -blength 0
  ;;
*)
  ;;
esac

unset MAILCHECK
# Penser à mettre /sbin après /usr/sbin pour le support de molly-guard
export PATH="/bin:/usr/bin:/usr/bin/X11:/usr/sbin:/sbin:/usr/local/sbin"
export PATH="$PATH:/usr/local/bin:/home/fournier/bin:/usr/scripts/"
export EDITOR="vim"
# Activation de --line-buffered pour permettre le cumul des grep sur les tail -f
# exemple : tail -f fichier | grep toto | grep titi
# Sans --line-buffered, grep bufferise et le deuxième grep n'affiche que de
# temps en temps
# Selon la doc, cela ralentit les traitements, mais rien de probant
alias grep='grep --color=auto --line-buffered'
alias grepsvn='grep --exclude-dir=.svn'
alias ls='ls --show-control-chars --color=auto --time-style="+%d-%m-%Y %T"'
# ll | tee /tmp/lldomll ; head -1 /tmp/lldomll ; rm /tmp/lldomll
alias ll='ls --color=yes -latr'
alias llu='ls --color=yes -latru'
alias lsd='ls --color=yes -latr |grep "^d"'
alias lll='ls --color=yes -atr1'
alias PS='echo "UID        PID  PPID  C STIME TTY          TIME CMD";ps -edfwww |grep -v grep | grep -i'
alias DISQUE='echo "STAT   PID  STARTED COMMAND";ps -eo stat,pid,start,comm | grep "^D"'
alias F='TAILLOG "/var/log/iptables.log"'
# Dans ncftp, mettre un bookmark nomme 'ftp' qui pointe vers ftp.grenoble.cnrs.fr
alias FTP='ncftp ftp'
alias mpage='mpage -P'
alias less='less -X -R '
alias traceroute='traceroute -I'
alias vi='vim'
alias telnet='TELNET'
alias a2ps-utf8='iconv -f utf-8 -t latin1 | a2ps'
alias minicom='minicom -w -c on'
alias logFirewall="sed -e 's/ \[[0-9.]*\] / /' -e 's/ MAC=[0-9a-f:]* / /' -e 's/ LEN=.*ID=[0-9]* / /' -e 's/ WINDOW=[0-9]*//' -e 's/ LEN=[0-9]*//' -e 's/ URGP=[0-9]*//' -e 's/ RES=0x[0-9]*//' -e 's/kernel: //'"

if [ $BASH_VERSINFO -ge 4 ]; then
  declare -A lanceur
  lanceur[apt-cache]="apt-cacher"
  lanceur[av_server]="klms"
  lanceur[archived.]="sympa"
  lanceur[bind]="bind9"
  lanceur[bounced.]="sympa"
  lanceur[bulk.pl]="sympa"
  lanceur[clamd]="clamav-daemon"
  lanceur[freshclam]="clamav-freshclam"
  lanceur[dhcpd]="isc-dhcp-server"
  lanceur[fail2ban-]="fail2ban"
  lanceur[freeradiu]="freeradius"
  lanceur[imap-logi]="dovecot"
  lanceur[incrond]="incron"
  lanceur[jsvc]="jetty"
  lanceur[master]="postfix"
  lanceur[munin-nod]="munin-node"
  lanceur[mysqld]="mysql"
  lanceur[lua5.1]="prosody"
  lanceur[named]="bind9"
  lanceur[nfsend]="nfsen"
  lanceur[ntpd]="ntp"
  lanceur[policyd-w]="policyd-weight"
  lanceur[rpc.statd]="nfs-common"
  lanceur[rpc.idmapd]="nfs-common"
  lanceur[rsyslogd]="rsyslog"
  lanceur[sendmaila]="sendmailanalyzer"
  lanceur[slaping.p]="slaping"
  lanceur[smartd]="smartmontools"
  lanceur[snmp]="snmpd"
  lanceur[snmptrapd]="snmpd"
  lanceur[spamass-m]="spamass-milter"
  lanceur[spamd]="spamassassin"
  lanceur[sshd]="ssh"
  lanceur[ssl-param]="dovecot"
  lanceur[sympa.pl]="sympa"
  lanceur[sympa_soa]="apache2"
  lanceur[systemd-j]="systemd-journald"
  lanceur[systemd-u]="systemd-udevd"
  lanceur[wwsympa.f]="apache2"
  lanceur[task_mana]="sympa"
  lanceur[udevd]="udev"
fi

function chercheLanceur()
{
  # Cette fonction renvoie le lanceur du programme passé en paramètre
  # On peut définir un tableau supplémentaire dans le fichier de configuration
  # Si le lanceur n'est pas défini dans le tableau, on renvoie le nom du
  # processus
  if [ $BASH_VERSINFO -ge 4 ]; then
    processus=$1
    if [ -z ${lanceur["$processus"]} ]; then
      echo "$processus"
    else
      echo ${lanceur["$processus"]}
    fi
  else
    # Le Bash 3 ne supporte pas les tableaux associatifs. On retourne aux liens
    # symboliques
    echo $1
  fi
}


# Affiche la liste des processus devant etre relances apres une mise a jour de 
# librairie
function afterUpgrade() { dpkg -l lsof > /dev/null 2>&1 || apt-get install lsof;lsof -n | grep 'DEL.*lib' | cut -f 1 -d ' ' | sort -u; }
function afterUpgradeRelance() {
  dpkg -l lsof > /dev/null 2>&1 || apt-get install lsof
  TEMP=`mktemp /tmp/afterUpgradeRelance.XXXXXXXXXX`
  lsof -n | grep 'DEL.*lib' | cut -f 1 -d ' ' | sort -u > $TEMP
  for service in `cat $TEMP`; do
    lanceur=`chercheLanceur "$service"`
    echo -n "Relance de $lanceur : "
    service $lanceur stop && service $lanceur start
  done
  rm $TEMP
 }
function upgradeSystem() {
  if [ $USER != 'root' ]; then
    echo "Passez root avant de lancer cette commande "
    return
  fi
  upgradeBashRC
  touch /tmp/check-bloque
  trap 'echo "clear";rm /tmp/check-bloque;' INT TERM
  echo "apt-get update ; apt-get dist-upgrade"
  apt-get -qq update ; \
  DEBIAN_FRONTEND=noninteractive APT_LISTCHANGES_FRONTEND=none apt-get --yes dist-upgrade && \
  afterUpgradeRelance
  echo ""
  echo "Applications à relancer manuellement : "
  afterUpgrade
  echo "Fin des applications à relancer manuellement"
  rm /tmp/check-bloque
  if [ -f /var/run/reboot-required.pkgs ]; then
    echo ""
    echo "Un reboot est nécessaire suite à la mise à jour des paquets :"
    cat /var/run/reboot-required.pkgs
  fi
}

function upgradeBashRC ()
{
  TMP="/tmp/.bashrc-$$"
  trap 'echo "clear";rm $TMP;' INT TERM
  wget -nv http://dominique.fournier38.fr/partage/.bashrc -O $TMP && \
  mv $TMP ~/.bashrc
}

#  ad()
#  {
#    ldapsearch -LLL -x -h ldap.grenoble.cnrs.fr -b "dc=grenoble,dc=cnrs,dc=fr" "(|(uid=*$1*)(mail=*$1*)(telephoneNumber=*$1*))" uid mail cn telephoneNumber o ou departmentNumber uidNumber | egrep -v "^dn: |^ "
#  }
#  idad()
#  {
#    ldapsearch -LLL -x -h ldap.grenoble.cnrs.fr -b "dc=grenoble,dc=cnrs,dc=fr" "(|(uid=*$1*)(mail=*$1*)(telephoneNumber=*$1*)(uidNumber=$1))" uid mail cn telephoneNumber o ou departmentNumber uidNumber | egrep -v "^dn: |^ "
#  }
#  ad2()
#  {
#    ldapsearch -LLL -x -h ldap.grenoble.cnrs.fr -b "dc=grenoble,dc=cnrs,dc=fr" "(|(uid=*$1*)(mail=*$1*)(telephoneNumber=*$1*))" uid mail cn telephoneNumber o ou departmentNumber uidNumber
#  }
#  adall()
#  {
#    # Creer le fichier de mots de passe de la forme 
#    # echo -D 'cn=user,dc=domain,dc=tld' -w 'PassW0rd'
#    ldapsearch -LLL -x -h ldap.grenoble.cnrs.fr -b "dc=grenoble,dc=cnrs,dc=fr" `source $HOME/systeme/passLDAP` "(|(uid=*$1*)(mail=*$1*)(telephoneNumber=*$1*))"
#  }

adZimbra ()
{
# Creer le fichier de mots de passe de la forme 
# echo -D 'cn=user,dc=domain,dc=tld' -w 'PassW0rd'
ldapsearch -LLL -x -H ldaps://annuaire.grenoble.cnrs.fr:636 -b "" `source $HOME/systeme/passZimbra` "(|(zimbraMailForwardingAddress=*$1*)(mail=*$1*)(telephoneNumber=*$1*))" uid mail cn telephoneNumber o ou departmentNumber uidNumber | egrep -v "^dn: |^ "
}
adallZimbra ()
{
# Creer le fichier de mots de passe de la forme 
# echo -D 'cn=user,dc=domain,dc=tld' -w 'PassW0rd'
ldapsearch -LLL -x -H ldaps://annuaire.grenoble.cnrs.fr:636 -b "" `source $HOME/systeme/passZimbra` "(|(zimbraMailForwardingAddress=*$1*)(mail=*$1*)(telephoneNumber=*$1*))"
}

function LS()
{
  SEARCH=`basename  "$1"`
  DIR=`dirname "$1"`
  OLDLSDIR=`pwd`
  if [ "$DIR" != "" ]; then 
    if [ ! -d "$DIR" ]; then
      echo "ERREUR : Répertoire '$DIR' non existant"
      return
    fi
    cd "$DIR" 
  fi
  ls --color=yes -ltra | grep -i "$SEARCH"
  if [ "$OLDLSDIR" != "" ]; then cd "$OLDLSDIR"; fi
}

# Permet d'ajouter au history en cas de fermeture du shell
shopt -s histappend

# Suppression de la completion faite par /etc/bash_completion car elle ne 
# corrige pas les repertoires au milieu (alors que le shell par defaut le fait)
complete -r cd 2> /dev/null

# Tous les mails (envoyes par mail) doivent revenir a Dom
export REPLYTO="dominique.fournier@grenoble.cnrs.fr"

# Met la date dans history du bash ( bash >= 3 )
export HISTTIMEFORMAT="%d/%m/%Y %T "
# Coloration des types de fichiers dans ls
# eval "`dircolors -b /home/fournier/systeme/.dircolors`"
LS_COLORS='no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:';
export LS_COLORS

export LANGUAGE="en_US:en_GB:en"
export LANG="fr_FR.UTF-8"
#export LC_MONETARY="fr_FR.UTF-8"
#export LC_PAPER="fr_FR.UTF-8"
# Les messages sont en anglais :
export LC_MESSAGES="en_US.UTF-8"
# On veut un point comme separateur de nombre, pas une virgule
export LC_NUMERIC="en_GB.UTF-8"
# La commande date est en anglais :
export LC_TIME="en_GB.UTF-8"

TAILLOG()
{
  # Affiche un tail du fichier passe en argument 1 
  # si on met un -XX en argument 2, on affiche le tail pour cette valeur 
  FICHIER=$1
  long=$2
  if [ -z "$2" ]; then  long="-10"
  else
    if [ "${2:0:1}" != "-" ]; then
      echo "Vous devez mettre -XX"
      return
    fi
  fi
  if [ ! -r "$FICHIER" ]; then
    echo "Pas les droits de lecture du fichier $FICHIER"
  else
    tail $long $FICHIER
  fi
}

TELNET()
{
  # Affiche pour les telnet la machine jointe dans le bandeau de gnome-terminal
  if [ -z "$1" ]; then 
    echo "Et l'adresse de la machine, elle est ou ??"
  else
    case "$TERM" in
    xterm*|rxvt*)
      # Pour gnome-terminal
      echo -ne "\033]0;Telnet $*\007"
      ;;
    *)
      ;;
    esac
    REALTELNET=`which telnet`
    if [ "$REALTELNET" != "" ]; then
      `which telnet` $*
    else
      echo "Telnet : command not found"
    fi
  fi
}

#################### OS SPECIFIQUE ######################
if [ -f /etc/debian_version ]; then
  # Le prompt...
  if [ "$HOSTNAME_SHORT" == "fournier38.fr" ]; then
    PS1='${debian_chroot:+($debian_chroot)}\u@\H:\w \$ '
  else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w \$ '
  fi
else
  PS1='\u@\h:\w \$ '
fi

BASHRCPLACE="$HOME/.bashrc"
################## STATION SPECIFIQUE ###################
if [ "$HOSTNAME_SHORT" == "laptop-dom" ]; then
  alias sshwho=' who | grep -v "[( ]:0"'
  alias R='ssh fournier@vigie /usr/scripts/R'
fi

if [ "$HOSTNAME_SHORT" == "laptop-dom" ] || \
   [ "$HOSTNAME_SHORT" == "serveur" ] || \
   [ "$HOSTNAME_SHORT" == "nuc" ] || \
   [ "$HOSTNAME_SHORT" == "fournier38.fr" ] || \
   [ "$HOSTNAME_SHORT" == "netbook" ]; then 
  # Pour packager les programmes avec dch
  export DEBFULLNAME="Dominique Fournier"
  export DEBEMAIL="dominique@fournier38.fr"
  export LANGUAGE="fr:en_US:en_GB:en"
  export LC_MESSAGES="fr_FR.UTF-8"
  BASHRCPLACE="$HOME/.bashrc"
  alias M='TAILLOG "/var/log/messages"'
  if [ -f "/etc/cdrecord/device" ]; then
    alias cdrecord='cdrecord -v driveropts=burnfree -tao -dev=`cat /etc/cdrecord/device`'
  else
    alias cdrecord='echo "CREER UN FICHIER /etc/cdrecord/device avec le dev (/dev/hdd) de cdrecord et recharger le ~/.bashrc"'
  fi
  alias mouv='mplayer -really-quiet -quiet -cache 50 mms://viptvr.yacast.fr/encoderlemouv ' 
  alias freq3='mplayer  -quiet -cache 50 http://streams.frequence3.net/mp3-192.m3u'
  alias tele='cd ~/vlc-0.8.4a;./vlc http://mafreebox.freebox.fr/freeboxtv/playlist.m3u;cd ->/dev/null'

  # Mettre la date en francais pour thunderbird (il ne faut pas mettre le fr_FR 
  # sinon les scripts passent en francais. Le en_GB a le meme format dd/mm/YY 
  # mais en anglais
  #export LC_TIME="en_GB.UTF-8"

  # gestion avec gpg-agent (lance dans le .xprofile)
  GPG_TTY=`tty`
  export GPG_TTY


  locateDom()
  {
    # Remplace locate sur les disques cryptes (et au passage que sur mon homedir)
    if [ "$1" == "-i" ]; then
      find ~ -iname "*$2*" 2>/dev/null  
    else
      find ~ -name "*$1*" 2>/dev/null
    fi
  }

  dicofr()
  {
    # Dictionnaire francais (Accepte les regexp)
    if [ ! -f "/home/fournier/systeme/dictionnaire/french" ]; then
      echo "Dictionnaire introuvable /home/fournier/systeme/dictionnaire/french"
    else
      egrep -i "$*" /home/fournier/systeme/dictionnaire/french
    fi
  }
  dicoen()
  {
    # Dictionnaire Americain (Accepte les regexp)
    if [ ! -f "/home/fournier/systeme/dictionnaire/american-english" ]; then
      echo "Dictionnaire introuvable /home/fournier/systeme/dictionnaire/american-english"
    else
      egrep -i "$*" /home/fournier/systeme/dictionnaire/american-english
    fi
  }

  HELP()
  {
    if [ "$1" == "help" ]; then
      vim /home/fournier/systeme/Help/help.lst.gpg
    else
      gpg2 -d -q /home/fournier/systeme/Help/help.lst.gpg  | grep -i "$*"
    fi
  }

elif [ "$HOSTNAME_SHORT" == "vigie" ]; then
  alias R='aplay `cat /var/cache/gestion_alertes/dernier`'
  BASHRCPLACE="/root/.bashrc"
elif [ "$HOSTNAME_SHORT" == "web1" ]; then
  BASHRCPLACE="/root/.bashrc"
  alias H='TAILLOG "/home/apache/var/log/HTTPS.log"'
  user() {
    echo "user sur smtp1"
  }

elif [ "$HOSTNAME_SHORT" == "mail1" ] ||
     [ "$HOSTNAME_SHORT" == "mail2" ]; then
  BASHRCPLACE="/root/.bashrc"
  alias mail='mailCRIC.php'
  user() {
    echo "user sur smtp1"
  }
elif [ "$HOSTNAME_SHORT" == "nfs" ]; then
  BASHRCPLACE="/root/.bashrc"
  alias mail='mailCRIC.php'
  user() {
    echo "user sur smtp1"
  }
elif [ "$HOSTNAME_SHORT" == "smtp1" ]; then
  BASHRCPLACE="/root/.bashrc"
  alias mail='mailCRIC.php'
  alias user='/usr/scripts/user'
elif [ "$HOSTNAME_SHORT" == "smtp1" ] || \
     [ "$HOSTNAME_SHORT" == "web1" ] || \
     [ "$HOSTNAME_SHORT" == "sauvegardes" ]; then
  BASHRCPLACE="/root/.bashrc"
  alias H='TAILLOG "/home/apache/var/log/HTTPS.log"'
  alias I='TAILLOG "/var/log/traceI"'
  alias mail='mailCRIC.php'
  user() {
    echo "user sur smtp1"
  }

  case "$TERM" in
  xterm*|rxvt*)
    PROMPT_COMMAND='let exitstatus=$? ; if [[ ${exitstatus} != 0 ]] ; then echo "[Exit ${exitstatus}]"; let statut=0; fi ; echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007";RELOADBASHRC'
    ;;
  *)
    PROMPT_COMMAND='RELOADBASHRC'
  esac
  export PS1='\u@\h:\w \$ '

elif [ "$HOSTNAME_SHORT" == "mx1" ] || \
     [ "$HOSTNAME_SHORT" == "mx2" ] || \
     [ "$HOSTNAME_SHORT" == "listes" ]; then
  BASHRCPLACE="$HOME/.bashrc"
  spamscore()
  {
    if [ "$1" == "" ]; then
      echo "Il faut le nom la regle Spamassassin pour afficher un score..."
    else
      echo "  En cas de plusieurs scores sur la meme ligne, prendre le dernier"
      echo "  Si plusieurs lignes, prendre la derniere"
      echo "  "
      egrep -r "^score" /usr/share/spamassassin/* /var/lib/spamassassin/*/* /etc/spamassassin/local.cf | grep  $1
    fi
  }
elif [ "$HOSTNAME_SHORT" == "backup" ]; then
  HELP()
  {
    if [ "$1" == "help" ]; then
      vim /home/fournier/systeme/Help/help.lst
    else
      grep -i "$*" /home/fournier/systeme/Help/help.lst
    fi
  }
else
  BASHRCPLACE="$HOME/.bashrc"
fi

###############################################################################
#### LE RELOAD AUTOMATIQUE DOIT ETRE PLACE A LA FIN POUR QUE LES VARIABLES ####
#### SOIENT REMPLIES                                                       ####
###############################################################################

if [ "$BASHRCPLACE" != "" ]; then 
  # On regarde si on mettra a jour si on n'est pas un script automatique
  # car si on appelle un script en bash, il n'y a pas chargement de 
  # $BASHRCPLACE
  BASHRCTIMEMOD="`stat -L -c%Y $BASHRCPLACE`"
fi

RELOADBASHRC ()
{
  if [ "$BASHRCTIMEDOWN" == "" ]; then
    # On empeche le telechargement a la premiere ouverture (et on en profite pour initialiser la variable)
    BASHRCTIMEDOWN=`date +%s`
  fi
  # On verifie si une nouvelle mise a jour est disponible toutes les 3600s (1heure)
  if [ "$HOSTNAME_SHORT" != "localhost" ] && [ $BASHRCTIMEDOWN -lt $((`date +%s`-3600)) ]; then
    #echo "Telechargement de la nouvelle version de $BASHRCPLACE en tache de fond"
    # set -m cache le message de fin de background job
    set -m
    # Le job en background (le telechargement) est defini entre les parentheses
    (
    TMP=`tempfile --prefix=bash-`
    wget -q -nv http://dominique.fournier.homedns.org/partage/.bashrc -O $TMP > /dev/null

    if [ "$?" == "0" ]; then
      if [ -f $BASHRCPLACE ]; then
        trap '' EXIT INT ABRT QUIT
        diff $BASHRCPLACE $TMP > /dev/null
        if [ "$?" != "0" ]; then
          # Une nouvelle version est arrivee
          mv $TMP $BASHRCPLACE
        else
          rm $TMP
        fi
        trap - EXIT INT ABRT QUIT
      else
        echo "Pas de fichier $BASHRCPLACE disponible"
      fi
    else
      # Un problème réseau est survenu : on saute
      rm $TMP
    fi 
    ) &
    # restaure l'affichage de fin de background job
    set +m

    BASHRCTIMEDOWN=`date +%s`
    export BASHRCTIMEDOWN
  fi
  if [ -f $BASHRCPLACE ] && [ "`stat -L -c%Y $BASHRCPLACE`" != "$BASHRCTIMEMOD" ]; then
    echo "Reload bashrc automatique : nouvelle version disponible"
    unset lanceur
    source $BASHRCPLACE
  fi
}

# This line was appended by KDE
# Make sure our customised gtkrc file is loaded.
export GTK2_RC_FILES=$HOME/.gtkrc-2.0
Suggestions : D. FOURNIER - Dernière mise à jour de la page : 11/04/2008 22:10