linux - 在 tcsh 中定义 shell 环境变量

标签 linux unix tcsh setenv

无法使用 tcsh 脚本创建环境变量。

尝试过set ,但仅在脚本内有效。 setenv在脚本之外不起作用。 export在我尝试运行的终端中显示“未找到命令”。

#!/usr/intel/bin/tcsh
#set WV "/p/hdk/cad/custom_waveview/O-2018.09-SP2/bin/wv"
setenv WV "/p/hdk/cad/custom_waveview/O-2018.09-SP2/bin/wv"
echo $WV
env $WV "/p/hdk/cad/custom_waveview/O-2018.09-SP2/bin/wv"

当我在终端上回显环境变量 WV 时,我希望输出为 /p/hdk/cad/custom_waveview/O-2018.09-SP2/bin/wv,但我收到了 undefined variable 的错误。

enter image description here

最佳答案

环境变量在当前进程中设置并由子进程继承。您无法在父进程中设置环境变量。

您必须使用source命令来执行脚本。这使得当前 shell 进程本身执行脚本,而不是在子进程中运行它。

source env_vars.tcsh

set 用于设置 shell 变量,而不是环境变量。 export 是一个 bash 命令(以及基于 Bourne Shell 语法的其他 shell),而不是 tcsh 命令。

env 要求程序名称之前的参数是 name=value 形式的变量设置,例如

env VAR1=val1 VAR2=val2 /p/hdk/cad/custom_waveview/O-2018.09-SP2/bin/wv

它运行程序并将这些变量添加到环境中。

关于linux - 在 tcsh 中定义 shell 环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57819718/

相关文章:

linux - Linux下如何读取INI文件

linux - iostat 与/proc/diskstats

c - Linux 删除 root 权限 - C 脚本

tcsh 中匹配的字符串/子字符串

sed:用下划线替换引号内的空格

c - SIGSEGV 回溯

linux - 如何正确使用手册页

bash - 如何使用AWK按某列抓取文件中的一行

c - fork后同步N个兄弟进程

bash - BASH 变量名称中可以接受哪些 Unicode 符号?