2013-11-01 4 views
0

Так что я пытаюсь выполнить это:Как вернуть следующий код в переменную bash?

internet=ping -c 3 google.com | grep -cim1 64; 

которая возвращает 1, если компьютер подключен к Интернету, и 0, если это не так. Но, очевидно, это не присваивает значение переменной, вместо этого оно просто отгоняет ее. Как назначить значение? Кроме того, существует ли более разумный способ проверить сценарий bash, если компьютер подключен к Интернету?

И я хотел бы придерживаться ping, а не wget или что-то еще.

+2

Этот код не должен ничего, кроме жалуются, что '-c' команда не может быть найден сделать. – chepner

ответ

2

$(...) используется для замены вывода команды:

internet=$(ping -c 3 google.com 2>/dev/null | grep -cim1 64) 
+0

Работает как очарование, спасибо! – Prnth

+0

Вы должны удалить форму ошибки ping, если DNS не работает или не работает. Если нет, вы получите сообщение об ошибке и 0 в переменной. 'internet = $ (ping -c 3 google.comm 2>/dev/null | grep -cim1 64)' – Jotne

Смежные вопросы