Problème commandes conditionnelles
Bonjour à tous,
Je suis tout nouveau sur le forum, et m'inscris dans le but de progresser dans les commandes bash que j'apprends depuis peu :)
Après plusieurs cours lu sur Internet et multiples essais, je me suis décidé à faire mon premier "vrai" script.
Il consiste tout simplement à paramétrer le txpower de ma carte wifi (2 cartes, une PCI, une USB, la dîte interessé étant la usb (wlan1))
J'ai plus ou moins réussi à écrire mon script.
Mes deux soucis sont :
- Mes commandes conditionnelles fonctionnent lorsque je réponds "Yes" ou "Y" mais me renvoi une erreur lorsque je saisie non ("n" ou "no"). J'ai problablement fait une (plusieurs?) grossière erreur mais en parcourant plusieurs tutos, je ne parviens pas à trouver où ?
- Mon deuxième soucis est, lui, plus ambitieux et plus compliqué (et moins prioritaire que le premier), j'aimerais que mon script renvoi un choix pour selectionner mon périphériques wifi après les avoirs detéctés ? (wlan0 ou wlan1, choix 1 ou 2)
Merci pour ceux qui pourrait me filer un coup de main, un indice, ou une solution :)
Ci-dessous mon script (et mes retours d'erreur) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
|
#!/bin/bash
# Wifi TXPOWER fixing
#Colors
white="\033[1;37m"
grey="\033[0;37m"
purple="\033[0;35m"
red="\033[1;31m"
green="\033[1;32m"
yellow="\033[1;33m"
Purple="\033[0;35m"
Cyan="\033[0;36m"
Cafe="\033[0;33m"
Fiuscha="\033[0;35m"
blue="\033[1;34m"
transparent="\e[0m"
bold="\033[1;1m"
clear
my_message="Hello $USER"
echo -e $yellow$my_message
sleep 0.5s
echo -e $blue"Today is"$red;date
sleep 0.5s
ifconfig wlan1 down
echo -e $yellow"Turning down wlan..."$transparent
sleep 1s
iw reg set GY
echo -e $red"Wifi Region : GY"$transparent
sleep 1s
iw reg get
sleep 1s
echo -n "Country has well been set to GY ? Y/N :"
read yesno
if [ $yesno = "y" ] ||*[ $yesno = "Y" ]
then
echo $Yellow"Next step ..."
elif [ $yesno = "n"*] || [ $yesno = "N" ]
then
echo $blue"OOPS ..."
else
echo ''Please type Y or N ... not &yesno ''
fi
iwconfig wlan1 txpower 30
echo -e $red"Setting txpower 30 ..."$transparent
sleep 1s
ifconfig wlan1 up
echo -e $yellow"Wifi back up ..."$transparent
sleep 1s
echo -e $yellow"Checking iwconfig now ..."$transparent
sleep 1s
iwconfig
echo -n "Did all went fine ? Y/N : "
read yesno
if [ "$yesno" = "y" ] ||*[ "$yesno" = "Y" ] ; then
echo "Ok, quitting now ..."
elif [ "$yesno" = "n" ] ||*[ "$yesno" = "N" ] ; then
echo "Thanks you to verify that wlan1 device is connected and try again"
sleep 1s
echo "Quitting now..."
else
echo '' Please, type Y or N, not $yesno ''
fi
sleep 1s |
L'erreur retournée au premier "no" :
Code:
1 2 3 4 5 6 7
|
Country has well been set to GY ? Y/N :n
./wifi-pwr.sh: ligne 36: *[ : commande introuvable
./wifi-pwr.sh: ligne 41 : [: « ] » manquant
Please type Y or N ... not
./wifi-pwr.sh: ligne 47: yesno : commande introuvable |
Au deuxième :
Code:
1 2 3 4 5 6
|
Did all went fine ? Y/N : n
./wifi-pwr.sh: ligne 70: *[ : commande introuvable
Thanks you to verify that wlan1 device is connected and try again
Quitting now... |