Ошибка синтаксиса сценария оболочки, вводимого пользователем

Я плохо знаком со сценариями оболочки и всем остальным и хотел написать сценарий, который автоматически выполнял бы эту команду для меня:

sudo aireplay-ng -0 (given number) -a (Router MAC Address) -c (Target MAC address) wlx000f60071636

Сценарий запрашивал пользовательский ввод, затем выполните команду с вводом пользователя.

Итак, я сослался на эти страницы:

http://www.aircrack-ng.org/doku.php?id=deauthentication - Для структуры Aircrack

http: //www.tutorialspoint. com / unix / unix-shell-functions.htm - для разработки функций, которые позволяют использовать разные числа вместо -0, что приводит к различным командам

https://stackoverflow.com/questions/226703/how- do-i-prompt-for-input-in-a-linux-shell-script - Для пользовательского ввода

http://www.tutorialspoint.com/unix/unix-using-variables.htm - Для переменных

И, используя эти страницы, я написал этот сценарий:

#!/bin/sh
ROUTER="(my router MAC)"
echo "Perform a wifi command?"
select yn in "Yes" "No"; do
    case $yn in
        Yes ) Deauth; break;;
        No ) exit;;
    esac
done

Deauth () {
    sudo airmon-ng start wlx000f60071636
    sudo airmon-ng check kill
    echo "Please specify device MAC:"
    read dmac
    echo "Number of commands to send, with 0 being unlimited:"
    read numts
    sudo aireplay-ng -0 $numts -a $ROUTER -c $dmac wlx000f60071636
}

Однако после запуска

chmod +x wificommand.sh

и

sh wificommand.sh

я получаю сообщение об ошибке

wificommand.sh: 4: wificommand.sh: select: not found
wificommand.sh: 9: wificommand.sh: Syntax error: "done" unexpected

Что не так с моим кодом? Выбор недоступен для использования? Почему не должно быть там? Это правильный способ запуска команды с пользовательским вводом?

0
01.11.2018, 15:37
0 ответов

Теги

Похожие вопросы