bash : if imbriqués - Shell/Batch - Programmation
Marsh Posté le 29-09-2022 à 09:49:51
Passe à la ligne pour le "then", ou mets un point-virgule.
Marsh Posté le 29-09-2022 à 10:49:34
merci de ton aide. neanmoins :
Citation : ./backup.sh: line 79: syntax error near unexpected token `else' |
ca correspond au :
no comprendo
fi
else
Marsh Posté le 29-09-2022 à 10:57:19
L'endroit où un interpréteur (ou un compilateur) indique l'erreur n'est pas forcément là où elle se trouve en réalité.
Il fait ce qu'il peut (comme tout le monde).
Marsh Posté le 29-09-2022 à 11:06:42
exact
tu pense que les doubles accolade sont necessaires ? je l'ai lu ici , paragraphe "nested if" :
https://ryanstutorials.net/bash-scr [...] ements.php .
je t'avoue que j'ai interpretté le truc , mais j'ai essayé avec des simples accolades , et cela bloquait aussi.
Marsh Posté le 29-09-2022 à 11:44:38
Non ici ils ne sont pas nécessaires, puisqu'il n'y a rien de spécifique à bash.
Pour être tout à fait correct (POSIX), il faudrait d'ailleurs remplacer == par = dans les tests.
Marsh Posté le 29-09-2022 à 18:32:14
oki . donc je reproduis la meme structure , avec d'autre variable , genre hors texte , j'echoise , et je vois si cela fonctionne .
Marsh Posté le 01-10-2022 à 10:30:09
Sous Windows, dans Visual Studio Code, tu installe le plug-in ShellCheck, et ça te montrera les problèmes de ton code batch. Par contre, ça fonctionne plus (pas maintenu) sous IntelliJ.
Et sous Linux, ça doit s'installer via un package manager.
A+,
Marsh Posté le 02-10-2022 à 09:29:47
Merci . je viens de l'installer . dispo sur debian . ca à l'air bien pratique.
Spoiler : #!/bin/bash |
so far , cela fonctionne ! la partie tool_choice fait doublon . c'est une relique de l'ancien temps
edit: donc j'ai deplacé la saisie "destination" : pour la section ssh et local. et une seul variable outil => "tool" .
dans le cas d'une sauvegarde ssh , le "sync" doit etre fait sur la machine distante , je le sais .
je pense à rajouter un hashage sha , que je stockerai sur une 3eme emplacement . on peut tout imaginer . via email par exemple. ou une 3eme machine physique .
tant qu'a faire , je vais rajouter l'inverse des fonctions : restauration depuis backup. une fois que tout fonctionnera, je pourrai peut etre ajouter une interface graphique. mais zenity ca me gonfle.
ps: comment on colle un spoiler mais compact/deroulant ?
Marsh Posté le 02-10-2022 à 12:52:53
c'est boiteux pour l'instant. m'enfin c'est le projet.
l'ultime test sera de le faire essayer par quelqu'un qui ne l'a pas écris .
Marsh Posté le 02-10-2022 à 13:32:31
okay . premiere esquisse.
Spoiler : #!/bin/bash |
ok. j'en suis là .
si vous voyez des trucs pas corrects ,
Marsh Posté le 29-09-2022 à 08:35:02
j'essaye d'imbriquer des if mais le shell me renvoi une erreur de syntax.
############# SSH Y/N #############
if [ "$ssh_backup" == "y" ] then
read -p "ssh server ? " sshserver
read -p "ssh user ? " sshuser
read -p "tar pigz ou dd ? " tool_choice
############# SSH-TOOL ##############
if [[ "$tool_choice" == "tar" ]] then
backup-action-ssh-tar
elif [[ "$tool_choice" == "pigz" ]] then
backup-action-ssh-pigz
elif [[ "$tool_choice" == "dd" ]] then
backup-action-ssh-dd
else
echo "no comprendo"
fi
else
########### TOOLS NO SSH ##############
read -p "tar pigz ou dd ? " tool_choice
if [ "tool_choice" == "tar" ] then
backup-action-tar
elif ["tool_choice" == "pigz" ] then
backup-action-pigz
elif ["tool_choice" =="dd" ] then
echo "NOT YET AVAILABLE"
fi