#1 Le 22/12/2017, à 22:59
- Duanra
[Résolu] Aide pour un débutant en scripting
Bonjour à tous,
J'ai une question toute simple : j'essaie de réaliser un script qui me permettrait d'activer ou désactiver ufw à l'envi, mais je ne comprends pas pourquoi il ne fonctionne pas. J'ai fouillé le web pour comprendre comment mettre le résultat d'une commande dans une variable mais je ne trouve pas la solution.
Je suis sûr que le script est pas bon, qu'il pourrait être 100 fois meilleur mais gardez à l'esprit que c'est plus un "jeu" pour me familiariser avec if...
#!/bin/bash
#Script pour activer ou désactiver ufw
var=$(sudo ufw status)
if $var="Status: inactive" ; then
ufw enable
elif $var="Status: active" ; then
ufw disable
fi
exit 0
Merci pour l'aide et les explications éventuelles... : )
Dernière modification par Duanra (Le 24/12/2017, à 18:26)
Hors ligne
#2 Le 22/12/2017, à 23:15
- Watael
Re : [Résolu] Aide pour un débutant en scripting
salut,
if utilise la structure suivante :
if COMMANDES; then COMMANDES; [ elif COMMANDES; then COMMANDES; ]... [ else COMMANDES; ] fi
or, ton code ne présente pas de commande à if.
il faut des espaces autour du signe égal.
il faut que les variables soient entre guillemets.
il faut que tu lises l'ABS (Advanced Bash Scripting guide).
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#3 Le 23/12/2017, à 08:24
- pingouinux
Re : [Résolu] Aide pour un débutant en scripting
Bonjour,
Pour te dépanner en attendant que tu approfondisses la doc
if [ "$var" = "Status: inactive" ]; then
Hors ligne
#4 Le 23/12/2017, à 09:36
- kholo
Re : [Résolu] Aide pour un débutant en scripting
salut,
petite observation : sudo
2 solutions pour ton script :
1 . ton script est lancé par utilisateur :
./monscript
et tu mets des sudo quand c'est nécessaire dans le script
#!/bin/bash
#Script pour activer ou désactiver ufw
var=$(sudo ufw status)
if [ "$var" = "Status: inactive" ]; then
sudo ufw enable
else
sudo ufw disable
fi
exit 0
2. ton script est lancé avec sudo
sudo ./monscript
tu ne mets aucun sudo dans le script
#!/bin/bash
#Script pour activer ou désactiver ufw
var=$(ufw status)
if [ "$var" = "Status: inactive" ]; then
ufw enable
else
ufw disable
fi
exit 0
Dernière modification par kholo (Le 23/12/2017, à 10:06)
Hors ligne
#5 Le 23/12/2017, à 21:28
- Duanra
Re : [Résolu] Aide pour un débutant en scripting
Waou merci pour vos réponses si rapides.
Je cherchais justement quelque chose pour apprendre en profondeur, donc l'ABS est parfait !
Hors ligne