Какая точная короткая условная конструкция активирует существующее Интернет-соединение, если это выключено, и деактивируйте его, если это идет?
Я смотрел некоторые страницы онлайн для понимания использования
Заключительная конструкция должна быть этого вида:
if ( nmcli MyConnection status = down ); then nmcli c up id "MyConnection"; else nmcli c down id "MyConnection"; fi
Примечание: если условие не является реальным кодом и должно быть разработано.
Но я не нашел, что опция для команды nmcli протестировала, если соединение закончилось или вниз. Я думал об использовании опции "состояния", т.е.: "nmcli c идентификатор состояния "MyConnection"", но в то время как nmcli дает grep-parsable выходной сигнал, когда "MyConnection" произошел, он возвращает ошибку и не выходит к командной строке, когда "MyConnection" снижается (курсор в окне терминала остается там, и CTRL+C необходим для возвращения приглашения оболочки).
Я нуждаюсь в некоторой помощи для расположения этих вещей в полный короткий сценарий, применимый в
System Settings > Keyboard > Shortcuts > Custom Shortcuts
список.
Большое спасибо.
P.S.: Этот вопрос следует за тем, что училось здесь некоторое время назад: Как установить сочетание клавиш для активации существующего Интернет-соединения?
ТАК Ubuntu 13.04, тип Интернет-соединения является Мобильной широкополосной связью
Это должно сделать это.
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
Если вы собираетесь использовать его из среды, отличной от bash, вам нужно будет обернуть команду в bash следующим образом:
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'
Вам следует взглянуть на Руководство по расширенному написанию сценариев Bash:
http://www.tldp.org/LDP/abs/html/
I не буду объяснять детали сценария, вы должны понять это как учебное упражнение.
#!/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