Простой сценарий удара, не работающий

Я являюсь довольно новым для избиения сценариев. Я пытаюсь сделать сценарий для экспорта http_proxy переменных. Это - то, что я делаю от терминала:

$export http_proxy=http://proxy21.iitd.ernet.in:3128/
$export https_proxy=https://proxy21.iitd.ernet.in:3128/

Это работает просто великолепно. Теперь, вот мой сценарий (назван setproxy):

#!/usr/bin/env bash
if [ $1 -eq 22 ]
then
    export http_proxy=http://proxy22.iitd.ernet.in:3128/
    export https_proxy=https://proxy22.iitd.ernet.in:3128/
elif [ $1 -eq 21 ]
then
    export http_proxy=http://proxy21.iitd.ernet.in:3128/
    export https_proxy=https://proxy21.iitd.ernet.in:3128/
elif [ $1 -eq 61 ]
then
    export http_proxy=http://proxy61.iitd.ernet.in:3128/
    export https_proxy=https://proxy61.iitd.ernet.in:3128/
elif [ $1 -eq 62 ]
then
    export http_proxy=http://proxy62.iitd.ernet.in:3128/
    export https_proxy=https://proxy62.iitd.ernet.in:3128/
fi

По существу я хочу установить соответствующий прокси-сервер в зависимости от входа. Я поместил его в папку мусорного ведра, сделал это, исполняемый файл, добавленное мусорное ведро к пути, вошел в систему и. Терминал принимает setproxy как допустимую команду (в leat нет никакой команды, не найденной ошибкой), Но, когда я делаю:

$setproxy 22

Нет никакого эффекта. Прокси остается неизменным. Что я делаю неправильно?

0
задан 26 August 2014 в 14:32

1 ответ

При вызове сценария новая дочерняя оболочка вызывается для выполнения его. Его прокси установлены, но прокси родительского процесса (Ваша оболочка) не может быть изменен от дочернего процесса. Попробуйте определение источника сценарий, т.е. назовите его как

. setproxy 21

Тогда, сценарий будет интерпретироваться Вашей текущей оболочкой.

4
ответ дан 7 October 2019 в 05:03

Другие вопросы по тегам:

Похожие вопросы: