PDA

Visualizza la versione completa : cat and if restituisce errore


kakashi
17-09-2013, 12:02
Salve ragazzi, sto cercando di seguire i tutorial ma non riesco a venirne a capo.
ho un file txt con dentro server,nome e password e con il cat e il relativo while leggo i dati e fino qua tutto ok. Ma se provo a porre una condizione non funziona più. Dove sbaglio?



#!/bin/bash

cat /file.txt | while IFS=':' read h1 u1 p1 p2 do
do
mapsync --host1 "$h1" --user1 "$u1" --password1 "$p1" --host2 ks311479.kimsufi.com --user2 "$u1" --password2
if [-z $p2] then
$p1;
else
$p2;
fi
--authmech2 LOGIN --authmech1 LOGIN
done


Una volta mi da errore su done una volta su if una volta su else

kakashi
17-09-2013, 12:14
Scusate sono arrivato alla soluzione continuando a "giocare"


#!/bin/bash

cat /file.txt | while IFS=':' read h1 u1 p1 p2
do
echo -ne "$h1 - ";

imapsync --host1 $h1 --user1 "$u1" --password1 "$p1" --host2 ks311479.kimsufi.com --user2 "$u1" --password2 zn5I4g9# --authmech2 LOGIN --authmech1 LOGIN

if [ -z "$p2" ]; then
--password2 "$p1"
else
--password2 "$p2"
fi
--authmech2 LOGIN --authmech1 LOGIN
done


La domanda che vi pongo ora però e questa. come posso assegnare --password2 a seconda del if? E' giusto come ho fatto?

Loading