(셸 스크립트) - 사용자 입력을 사용하여 파일 수정

(셸 스크립트) - 사용자 입력을 사용하여 파일 수정

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

물론, 파이어폭스를 종료한 후 메뉴를 복원하고 싶은데 사용자가 선택하면 [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

관련 정보