Programmation bash / script bash

Résolu
Dmouha -  
 Dmouha -
bonjour j'ai un souci avec un petit script bash que j'ai fait:
tout d'abord j'ai un fichier try qui contient

//192.168.1.1/binaire; date 1 ; date 2
132.456.555.555:/toto; date 1; date 2
//123.456.789/voila; date 1; date 2
124.765.677.677:/commeca; date 1 ; date 2

les partages cifs sont sous la forme //xxx.xxx.xxx/partage ceux nfs sont xxx.xxx.xxx:/partage

j'ai écrit un code qui me permet de vérifier s il est cifs ou nfs
#!/bin/bash

i=0
while read line
do
i='expr $i + 1'
var=$(awk -F ";" 'NR=='$i' {print $1;}' try | awk -F ":" '{print $2;}')

#dans la variable j'ai le partage rien quand il est cifs et nimporte quoi quand il est nfs

if [ var != " " ] # je controle si la variable est différent de vide
then
echo "partage nfs"
break
else # dans le cas contraire

echo "partage cifs"
fi
done<try

mias je n'obtiens rien quelqu'un pourrait m'aider merci cdtsl Dmouha

4 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    Et comme ça, ce n'est pas plus simple :

    jp@MDK:~/tmpfs ssh$ cat try
    //192.168.1.1/binaire; date 1 ; date 2
    132.456.555.555:/toto; date 1; date 2
    //123.456.789/voila; date 1; date 2
    124.765.677.677:/commeca; date 1 ; date 2
    
    jp@MDK:~/tmpfs ssh$ cat foo.sh
    #! /bin/sh
    
    #set -xv
    
    while read line
    do
    grep -q '^/' <<<${line}
    if [ "$?" = 0 ]
    then
    var=$(awk -F '[/;]' '{ print $4 }' <<<${line})
    echo "${var} = Partage CIF"
    else
    var=$(awk -F '[/;]' '{ print $2 }' <<<${line})
    echo "${var} = Paratge NFS"
    fi
    done < try
    
    jp@MDK:~/tmpfs ssh$ ./foo.sh
    binaire = Partage CIF
    toto = Paratge NFS
    voila = Partage CIF
    commeca = Paratge NFS
    
    jp@MDK:~/tmpfs ssh$

    ;-))
    0
  2. Dmouha
     
    mais j'aurai besoin de toute la ligne pas seleument du share par exemple

    on aurait au final mount -cifs //192.168.1.1/binaire quand c est un cifs et
    mount -nfs 132.456.555.555:/toto car je dois monter les partages
    merci je vais chercher de mon coté aussi!
    0
  3. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Essaie comme ça alors :

    jp@MDK:~/tmpfs ssh$ cat foo.sh
    #! /bin/sh
    
    #set -xv
    
    while read line
    do
    grep -q '^/' <<<${line}
    if [ "$?" = 0 ]
    then
    echo "mount -cifs ${line%%;*}"
    else
    echo "mount -nfs ${line%%;*}"
    fi
    done < try
    
    jp@MDK:~/tmpfs ssh$ ./foo.sh
    mount -cifs //192.168.1.1/binaire
    mount -nfs 132.456.555.555:/toto
    mount -cifs //123.456.789/voila
    mount -nfs 124.765.677.677:/commeca
    
    jp@MDK:~/tmpfs ssh$

    ;-))
    0
  4. Dmouha
     
    c est bon j'ai trouver il fallait juste affecté les variables merci pour l'aide
    0