Script Bash et conditions IF
Résolu
pcsystemd
Messages postés
734
Statut
Membre
-
zipe31 Messages postés 38797 Statut Contributeur -
zipe31 Messages postés 38797 Statut Contributeur -
Bonjour,
j'ai un bout de code dans mon fichier testmaj.sh :
mais j'ai l'erreur :
./testmaj.sh: line 21: syntax error: unexpected end of file
Avez vous une idée?
Merci.
L'accès au savoir est la première liberté que chaque homme devrait avoir.
j'ai un bout de code dans mon fichier testmaj.sh :
#! /bin/bash
OMEMAJ="/home/${USER}"
if [ "${USER}" == "toto" ]
then
REPMAJ="totorep"
else if [ "${USER}" == "tata" ]
then
REPMAJ="tatarep"
else
echo "pas de dossier"
exit 1
fi
exit 0
mais j'ai l'erreur :
./testmaj.sh: line 21: syntax error: unexpected end of file
Avez vous une idée?
Merci.
L'accès au savoir est la première liberté que chaque homme devrait avoir.
A voir également:
- If [ -z ] bash
- Code ascii de a à z - Guide
- Gpu z - Télécharger - Informations & Diagnostic
- Cpu z - Télécharger - Informations & Diagnostic
- Excel trier de a à z ne fonctionne pas - Guide
- Bingo bash free - Télécharger - Divers Jeux
jai une question sur ce sujet jai fait un script pour checker si le fichier est vide pas de mail ,alors s'il nest pas vide jenvoi le mail mais méme il est vide je recoi un mail (vide)
voila le script :
day='date "+%Y-%m-%d %H:%M:%S " '
ssh user@ip ' /home/directory/remotescript.sh' >> /home/directory/local/resultat.lst
[ -s /home/directory/local/resultat.lst ]
[ -e /home/directory/local/resultat.lst ]
echo $?
if [ 'echo $?' -eq 1 ];then
(
echo open ip@serveur
sleep 1
echo helo localhost
sleep 1
echo mail from: @group
sleep 1
echo rcpt to: admin@@domaine.com
sleep 1
echo data
sleep 1
echo subject: DAILY_CHECKLIST_$day
sleep 1
echo From: admin@@domaine.com
sleep 1
echo To: admin@@domaine.com
sleep 1
echo Cc: admin@@domaine.com
sleep 1
echo "Dear all,"
echo
echo
echo "The following check list is done : "
echo " "
echo
sleep 1
echo
echo
cat /home/directory/local/resultat.lst
echo
echo
echo "With Regards,"
echo "admin@@domaine.com team."
echo .
sleep 1
echo quit ) | telnet > /dev/null 2>&1
fi
rm /home/directory/local/resultat.lst
exit
#############################
merci a vous en avance
mes respects
cdt
[ -s /home/directory/local/resultat.lst ]
[ -e /home/directory/local/resultat.lst ]
Il te faut choisir, ou l'un ou l'autre, mais pas les 2 ;-(
Mais dans ton cas il faut garder que la condition '-s' (on teste si la taille est différente de zéro).
echo $?
if [ 'echo $?' -eq 1 ];then
Idem, si tu affiches le code retour avec la commande "echo", alors le prochain "$?" (celui que tu testes ensuite) ne vaudra plus la valeur de retour de ton test "[ -s /home/directory/local/resultat.lst ]", mais la valeur de retour de "echo $?" ;-\
Dans ce cas il vaut meiux garder le résultat dans une variable :
[ -s /home/directory/local/resultat.lst ] retval=$? echo "${retval}" if [ "${retval}" -eq 1 ];then ...