4

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

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

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

4

3 回答 3

6

您可以定义一个名为的函数setenv

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

要设置变量,请获取文件:

. your_file
于 2011-03-21T19:39:51.850 回答
1

这是一个改进的版本。

# Mimic csh/tsch setenv
function setenv()
{
    if [ $# = 2 ]; then
        export $1=$2;
    else
        echo "Usage: setenv [NAME] [VALUE]";
    fi
}
于 2011-05-09T09:25:11.197 回答
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
}
于 2013-05-27T09:08:34.813 回答