Вы не (исправить Grep).
Обратите внимание, что ваш код проверяет значение выхода grep, а не текстовую строку.
Что вы можете сделать, это назначить результаты команды, которую вы используете, для одной или двух переменных, а затем проверить правильную переменную. Это также позволяет эхо переменной, чтобы увидеть, что происходит:
#!/bin/bash
ifconfig wlan0 down
iwconfig wlan0 mode monitor
ifconfig wlan0 up
result="$(airbase-ng -c 6 -e "Steve's HotSpot" wlan0 | grep "Client")"
exitval="$?"
echo "the var is $result"
if [[ $exitval == 0 ]]
then
clear
echo "SomeOne connected to your Hotspot"
fi
Если вам действительно нужно проверить вывод строки из Grep, а затем изменить:
if [[ $exitval == 0 ]]
в
if [[ -n $result ]]
Как выглядит выход «airbase-ng -c 6 -e» Steve's HotSpot «wlan0'? –
03:14:42 Создан интерфейс отвода at0 03:14:42 Попытка установить MTU на at0 до 1500 03:14:42 Началась точка доступа с BSSID 1E: AB: 15: 29: 8F: 14. – Mohamed
@Mohamed: Если это результат, то почему вы ожидаете, что 'grep -q" Client "будет указывать на успех (и, таким образом, ввести предложение' if'), учитывая, что вывод не содержит '' Client '' ? Как правило, добавьте образец/ожидаемый ввод/вывод в _question_ - не к комментариям - и предпочтительно - для начала. – mklement0