我正在尝试通过编写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
有什么建议吗?
答案 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
干杯, 霍尔格