Quelle construction conditionnelle d'une ligne exacte active une connexion Internet existante si elle est désactivée et la désactive si elle est activée?
J'ai regardé quelques pages en ligne pour comprendre l'utilisation de
La construction finale devrait être de ce type:
if ( nmcli MyConnection status = down ); then nmcli c up id "MyConnection"; else nmcli c down id "MyConnection"; fi
Remarque: la condition if n'est pas du vrai code et doit être élaborée.
Mais je n'ai pas trouvé d'option pour que la commande nmcli teste si une connexion est en haut ou en bas. J'ai pensé à utiliser l'option "status", c'est-à-dire: "nmcli c status id" MyConnection "", mais bien que nmcli donne un message de sortie grep-parsable lorsque "MyConnection" est actif, il retourne une erreur et ne revient pas à la ligne de commande lorsque "MyConnection" est en bas (le curseur dans la fenêtre du terminal y reste et un CTRL + C est nécessaire pour récupérer l'invite du shell).
J'ai besoin d'aide pour organiser ces choses en un script complet d'une ligne utilisable dans le
System Settings > Keyboard > Shortcuts > Custom Shortcuts
liste.
Merci beaucoup.
P.S .: Cette question fait suite à ce que j'ai appris ici il y a quelque temps: Comment définir un raccourci clavier pour activer une connexion Internet existante?
SO est Ubuntu 13.04, le type de connexion Internet est large bande mobile
Cela devrait le faire.
if [[ -z $(nmcli c status id MyConnection | grep -E 'STATE\:\s+activated') ]]; then nmcli c up id MyConnection; else nmcli c down id MyConnection; fi
Si vous allez l'utiliser à partir d'un environnement non bash, vous devrez encapsuler la commande dans bash comme ceci:
bash -c 'if [[ -z $(nmcli c status id MyConnection | grep -E 'STATE\:\s+activated') ]]; then nmcli c up id MyConnection; else nmcli c down id MyConnection; fi'
Vous devriez jeter un œil au Guide de script avancé de Bash:
http://www.tldp.org/LDP/abs/html/
Je n'expliquerai pas les détails du script, vous devez le comprendre vous-même comme un exercice d'apprentissage.
#!/usr/bin/env bash
if [ -z $1 ]
then
essid="MyConnection"
else
essid=$1
fi
nmcli c status id $essid 2>&1 > /dev/null
if [ $? -eq 0 ]
then
action="down"
else
action="up"
fi
nmcli c $action id $essid