Как я могу установить переменные среды в bash с помощью setenv? - PullRequest
4 голосов
/ 21 марта 2011

У меня есть файл, содержащий все переменные среды, необходимые для запуска приложения в следующем формате ...

setenv DISPLAY invest7@example.com
setenv HOST example.com
setenv HOSTNAME sk
...

Как бы я установить env.переменные в Bash, используя вышеуказанный файл?Есть ли способ как-то использовать команду setenv в bash?

Ответы [ 3 ]

6 голосов
/ 21 марта 2011

Вы можете определить функцию с именем setenv:

function setenv() { export "$1=$2"; }

Чтобы установить переменные, поставьте файл:

. your_file
1 голос
/ 09 мая 2011

Это улучшенная версия.

# Mimic csh/tsch setenv
function setenv()
{
    if [ $# = 2 ]; then
        export $1=$2;
    else
        echo "Usage: setenv [NAME] [VALUE]";
    fi
}
0 голосов
/ 27 мая 2013

Вот более полная версия для ksh / bash.Он ведет себя как csh / tcsh setenv независимо от количества аргументов.

setenv () {
    if (( $# == 0 )); then
        env
        return 0
    fi

    if [[ $1 == *[!A-Za-z0-9_]* ]]; then
        printf 'setenv: not a valid identifier -- %s\n' "$1" >&2
        return 1
    fi

    case $# in
        1)
            export "$1"
            ;;
        2)
            export "$1=$2"
            ;;
        *)
            printf 'Usage: setenv [VARIABLE [VALUE]]\n' >&2
            return 1
    esac
}
...