setenv bash命令无法在shell中运行

时间:2015-03-02 03:00:37

标签: linux bash

我正在尝试通过编写bash文件来简化我的工作。 当我在终端中尝试此代码时:

env | grep $TMPDIR

它返回:

/tmp

(我不知道这是设置的位置,也无法找到为TMPDIR分配此/tmp路径的代码行。如果有人能告诉我如何查找,我也会很高兴包含此作业的文件)。

当我在终端中设置正确的路径时,一切正常:

export TMPDIR=/My/Path/to/where/I/need

但是当我在bash文件中使用相同的代码时它不起作用:

#!/bin/bash
setenv TMPDIR /My/Path/to/where/I/need

我也试过这些:

setenv TMPDIR "/My/Path/to/where/I/need"

或:

export TMPDIR "/My/Path/to/where/I/need"

所有人都返回"/tmp"以回复echo $TMPDIR

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

setenv仅适用于csh。在Bourne shell中使用export

csh的{​​{1}}不同,您需要在密钥和值之间加setenv

=

答案 1 :(得分:1)

我假设您正在尝试运行一个在调用环境中设置环境变量的shell脚本,如:

$ echo $myvar
old_value
$ ./set_new_value.sh
$ echo $myvar
new_value

首先,您需要使用export,而不是setenv。

其次,您需要获取脚本:

$ cat set_new_value.sh
export myvar='new_value'
$ source ./set_new_value.sh
$ echo $myvar
new_value

你也可以使用。单独:

$ . ./set_new_value.sh

干杯, 霍尔格