
次のような選択メニューを作成するための簡単な 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
簡単な例:
スクリプトを選択:
#!/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
スクリプト操作:
while loop
: コマンドを実行して、とarray
呼ばれるものを作成しarray
、- 配列からコマンドを読み取り、
menu
選択したものを作成します。
情報:
IFS=''
(またはIFS=
) は先頭/末尾の空白が切り捨てられないようにします。-r
バックスラッシュエスケープが解釈されるのを防ぎます。|| [[ -n $line ]]
最後の行が a で終わらない場合に無視されることを防ぎます\n
(read は EOF に遭遇するとゼロ以外の終了コードを返すため)。[ ! -z "$line" ]
ソースファイル内の空白行を無視します。${array[@]}
配列の値