TCSH/CSH:set vs setenv命令差异
时间:2020-01-09 10:45:58 来源:igfitidea点击:
SET和SETENV命令之间有什么区别?
C Shell:set与setenv
c shell(tcsh或者csh)位于您和操作系统之间。
它充当命令解释器。
它读取您的命令,并将命令转换为Unix系统采取的操作。
当c shell启动时,它将读取其启动文件,并可以使用setenv命令设置环境变量。
所有通过setenv命令设置的变量都将自动导出到subshell中。
使用set command
设置为csh的所有变量不会自动导出到subshell。
在此示例中,使用set命令设置一个称为vech的环境变量:
set vech=bus echo "$vech"
启动一个新的shell
csh
尝试显示$vech,执行:
echo "$vech"
输出示例:
vech: Undefined variable.
现在,使用setenv命令尝试相同的操作:
setenv jaildir /nas/httpd echo "$jaildir" csh echo "$jaildir"
输出示例:
/nas/httpd
简而言之,set命令用于此shell,setenv用于此shell和任何子shell。
通常,所有系统环境变量(例如$HOME,$USER,$MAIL,$PATH等)都使用setenv命令定义。