選択メニューからプログラムを実行する

選択メニューからプログラムを実行する

次のような選択メニューを作成するための簡単な bash スクリプトを作成しました。

1) nmap を実行する 2) Wireshark を実行する 3) metasploit フレームワークを実行する 4) 終了する

今、私はメニュー選択に従ってこれらのプログラムを実行したいと考えています。私は bash スクリプトの初心者なので、ここで誰かの助けを求めています。

答え1

読み取りは、ユーザー入力を変数に読み取ります。

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

ここから$OPION変数が設定され、テストします

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

答え2

簡単な例:

  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 ]]最後の行が a で終わらない場合に無視されることを防ぎます\n(read は EOF に遭遇するとゼロ以外の終了コードを返すため)。

  4. [ ! -z "$line" ]ソースファイル内の空白行を無視します。

  5. ${array[@]}配列の値

関連情報