(Shell 脚本)- 使用用户输入修改文件

(Shell 脚本)- 使用用户输入修改文件

我想创建一个脚本 ( 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]它,它会echo "Goodbye"休眠 1 秒并退出。

答案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

相关内容