如何使用setenv在bash中设置环境变量?

时间:2011-03-21 19:29:54

标签: bash tcsh setenv

我有一个文件,其中包含应用程序以下列格式运行所需的所有环境变量...

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

我如何设置环境。 bash中的变量使用上面的文件?有没有办法以某种方式在bash中使用setenv命令?

3 个答案:

答案 0 :(得分:6)

您可以定义名为setenv的函数:

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

要设置envariables,请获取文件:

. your_file

答案 1 :(得分:1)

这是一个改进版本。

# Mimic csh/tsch setenv
function setenv()
{
    if [ $# = 2 ]; then
        export $1=$2;
    else
        echo "Usage: setenv [NAME] [VALUE]";
    fi
}

答案 2 :(得分:0)

这是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
}