Programmation bash / script bash

Résolu/Fermé
Dmouha - Modifié par Dmouha le 16/04/2010 à 10:36
 Dmouha - 16 avril 2010 à 11:31
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

A voir également:

4 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
16 avril 2010 à 10:58
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
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
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
16 avril 2010 à 11:20
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
c est bon j'ai trouver il fallait juste affecté les variables merci pour l'aide
0