Запускать программы из меню выбора

Я создал простой скрипт bash для создания меню выбора, которое выглядит так:

1) Запустить Nmap 2) Wireshark 3) Metasploit Framework 4) Выход

Теперь я хочу запустить эти программы в соответствии с выбором меню. Я очень новичок в написании сценариев Bash, поэтому ищу чью-либо помощь здесь.

2 ответа

Read читает пользовательский ввод в переменную.

echo 'Select an option
  1) Run nmap 
  2) Wireshark 
  3) metasploit framework 
  4) Exit?'
read OPTION

С этого момента переменная $OPION установлена, тестируйте

if [ "$OPTION" == "1" ]
then
   ...

Простой пример:

  1. Выберите скрипт:

    #!/bin/bash
    
    array=()
    
    while IFS= read -r line || [[ -n "$line" ]]
    do
        if [ ! -z "$line" ]; then
            array+=("$line")
        fi
    done < "$1"
    
    select fname in "${array[@]}";
    do
        /bin/bash -c "$fname"
        break;
    done  
    

Операция сценария:

  1. while loop: Принять команды создать array называется array, затем
  2. Прочитайте команды из массива и создайте menu что вы выбираете из.

Информация:

  1. IFS='' (или же IFS=) предотвращает обрезку начальных / конечных пробелов.

  2. -r предотвращает интерпретацию обратной косой черты.

  3. || [[ -n $line ]] предотвращает игнорирование последней строки, если она не заканчивается \n (поскольку read возвращает ненулевой код выхода при обнаружении EOF).

  4. [ ! -z "$line" ] игнорировать пустые строки в исходном файле.

  5. ${array[@]} значения массива

Другие вопросы по тегам