Bonjour,

Je suis débutant en bash script et j'ai un p'tit pb pour utiliser le caractère ; comme séparateur de commande sur une même ligne dans un script sh.

Ci-dessous mon script :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
 
#!/bin/sh
 
MAIL="xxx@yyy.com"
function check_distrib() {
 
    if [ -f '/etc/debian_version' ]
        then
        echo "debian"
        return
    fi
    if [ -f '/etc/redhat-release' ]
        then
        echo "redhat"
        return
    fi
}
 
function debian_update() {
 
UPDT="/tmp/debian_update"
CMD="apt-get clean all;apt-get clean;apt-get update;apt-get upgrade -s"
$CMD >& $UPDT
 
cat $UPDT | mail -s "Result Security Update for ${HOSTNAME} " $MAIL
}
 
function redhat_update(){
 
UPDT="/tmp/redhat_update"
CMD="yum clean all; yum check_update"
$CMD >& $UPDT
 
cat $UPDT | mail -s "Result Security Update for ${HOSTNAME} " $MAIL
 
}
 
DISTRIB=`check_distrib`
 
case $DISTRIB in
 
    'debian')
    debian_update
    ;;
 
    'redhat')
    redhat_update
    ;;
 
esac
Je m'explique ... quand je tape la commande yum clean all; yum check-update directement sous mon prompt ça fonctionne mais quand je l'utilise dans le script ci-dessus j'ai le message d'erreur suivant :

Error: invalid clean argument: 'all;'
Visiblement il interprète le caractère spécial point virgule ; comme ne faisant pas parti d'un argument valide à donner à la commande yum clean. Normal vous me direz mais moi je veux juste utiliser le ; comme séparateur de commande

J'ai bien essayé de modifier la ligne de plusieurs manières pour que le système ne cherche pas à associer ce fameux ; à la commande yum, genre :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
CMD="yum clean all /; yum check_update"
CMD="yum clean all (;) yum check_update"
...
mais ça ne marche pas !

Une personne bien charitable pourrait-elle m'aider svp ?

D'avance, merci !

Adyr