(シェルスクリプト) - ユーザー入力を使用したファイルの変更

(シェルスクリプト) - ユーザー入力を使用したファイルの変更

script.sh変更を行うためにスクリプト()を作成したいと思います/etc/proxychains.conf。しかし、次のメニューの形でやりたいと思います。

走った後./script.sh

[1] Add Proxychain

[2] Start Proxychains

[3] Exit

Please select an option:

ユーザーが選択したら、[1]次の入力を要求したいと思います。

Type of Proxy:

Proxy IP Address:

Proxy Port:

そして、次の形式でこれらの入力を使用します。 (socks5 127.0.0.1 9050)ファイルの下部に/etc/proxychains.conf通常プロキシ情報を追加します。各入力をこのように割り当てるつもりです$type $ip $port(したがって、各フィールドを互いに隣に表示できます)。しかし、ファイル内のその場所を自動的に見つけて、proxychains.conf事前に追加された他のフィールドの下にそのフィールドを追加するにはどうすればよいですか?

その後、オプションメニューに戻り、ユーザーがこのメニューを押すと、次の操作が[2]実行されます。

proxychains firefox

もちろん、Firefoxを終了した後にメニューを復元したいのですが、ユーザーが選択すると[3]1秒間echo "Goodbye"スリープ状態になって終了します。

ベストアンサー1

このスクリプトは問題を解決します。そして次回ソリューション全体を尋ねるのではなく、質問があるかどうかを尋ねるスクリプトを書いてください。

#! /bin/bash
function menu {
    echo ""
    echo "++++++++++++++++++++++++++++++++++++++++++++"
    echo "+++++proxychain applications version1.0+++++"
    echo "++++++++++++++++++++++++++++++++++++++++++++"
    echo "[1] Add Proxychain"
    echo "[2] Start Proxychains" 
    echo "[3] Exit"
    echo "[4] Cat specified file"
    read -p "Please select an option : " option
}

function input {
    read -p "Input Type of Proxy : " type
        read -p "Input Proxy IP Address : " ip_addr
        read -p "Inport Proxy Port : " port
        if [ ! -z "${type}" ]&&[ ! -z "${ip_addr}" ]&&[ ! -z "${port}" ]
    then
        echo -e "${type}\t${ip_addr}\t${port}" >>proxychains.conf
    else
        input   
    fi
}

function start {
    echo "proxychains firefox"
}

function terminate {
    if [ -z "$(pgrep firefox)" ]
    then
        echo -e "Goodbye\n"
        sleep 1
        end_script=1
        exit 0
    else
        echo -e "Terminating firefox!\n"
        pkill firefox
        echo "Goodbye"
        end_script=1
        exit 0
    fi
}

function catme {
    read -p "Input the file path : " file_path
    cat "${file_path}"
    exit 0
}

end_script=0
while [ "${end_script}" != 1 ];do
    menu
    current_stage=${option}
    case ${option} in
        1)
            input
        ;;

        2) 
            start
        ;;

        3) 
            terminate
            exit 0
        ;;

        4)  
            catme
        ;;

        *)
            echo "unknown usage!"
        ;;
    esac

おすすめ記事