setenv是csh的命令; 在bash中是没有setenv的

csh/tcsh有两种类型的变量:局部变量和环境变量.局域变量是在shell内部声明的;环境变量是全局域的变量.
使用set来定义局部变量, 使用setenv可以定义环境变量; 局部变量只对本shell有效, 不能传递给子shell; 但环境变量可传递给子shell. setenv有点类似于bash中export一个变量.

当然, set 和setenv的语法不一样

# set varname = value;

# setenv varname2 valu2;

这里讨论的是tcsh中变量及环境变量时set和setenv命令的区别
set语法set name=value
setenv语法setenv name value
最大的区别是,set变量只对当前进程有效,不会传递给子进程
setenv变量不仅对当前进程有效,而且会传递给子进程
而当同时使用set和setenv设置一个变量时,当前进程中,会优先使用set设置的值
如下面代码所示

tcsh code : set && setenv
1234
 56789
10
11
12
13
14
15
linux-r9f7 /home/myname> set VARY="set use set"
linux-r9f7 /home/myname> setenv VARY "set use setenv"
linux-r9f7 /home/myname> echo $VARY
set use set
linux-r9f7 /home/myname> echovary
set use setenv
linux-r9f7 /home/myname> source ~/bin/echovary
set use set
linux-r9f7 /home/myname> cat ~/bin/echovary
#!/bin/tcsh
echo $VARY
linux-r9f7 /home/myname> setenv ANOTHER "set use setenv"
linux-r9f7 /home/myname> echo $ANOTHER
set use setenv
linux-r9f7 /home/myname>

tcsh code : echovary source
1
2
3
linux-r9f7 /home/myname> cat ~/bin/echovary
#!/bin/tcsh
echo $VARY

在Bash中也有类似的区别
BASH不需要显示声明变量使用=号直接能声明并初始化变量,但是如果没有export,是不能被子进程使用的。

set,setenv和export相关推荐

  1. Linux中的setenv与export

    一. setenv 中文名:改变或增加环境变量 英文名:setenv 头文件:#include<stdlib.h> 函数定义:int setenv(const char *name,con ...

  2. 利用setenv进行tomcat 内存设置

    part.1 系统环境及版本 系统环境: centos 7版本: tomcat 7.0.78 part.2 步骤流程 2.1 新建setenv.sh # cd /usr/local/tomcat/bi ...

  3. DS, DB, WEB模块的安装(环境搭建) 学习日志 2012年7月10日

    一.关于统筹模块的安装步骤: 1.将安装包以smsds用户二进制方式上传至"/home/smsds"目录. 2.以smsds用户登录系统. 3.删除"/home/smsd ...

  4. Shell Basic

    bash shell 是大多数 Linux 发行版上的默认 shell.如果不是运行在 bash shell 之下,那么可以考虑用以下方式之一对 bash shell 进行实践. 使用 chsh -s ...

  5. linux与windows下tomcat的java内存设置

    Linux下修改JVM内存大小: 要添加在tomcat 的bin 下catalina.sh文件中,找到cygwin=false,在这一行的前面加入参数,具体如下# vi TOMCAT_HOME/bin ...

  6. Ansible搭建hadoop3.1.3高可用集群

    一.节点信息 内核版本:3.10.0-1062.el7.x86_64 系统版本:Red Hat Enterprise Linux Server release 7.7 (Maipo) 节点 ip 内存 ...

  7. Android C/C++ 开发

    转自:http://www.linuxidc.com/Linux/2010-08/27880.htm 严格意义上来讲,Google Android 平台只支持基于 Android Dalvik VM ...

  8. linux增量安装tomcat_linux与windows下tomcat的java内存设置

    Linux下修改JVM内存大小: 要添加在tomcat 的bin 下catalina.sh文件中,找到cygwin=false,在这一行的前面加入参数,具体如下# vi TOMCAT_HOME/bin ...

  9. 基于 OE、Yocto、Arago 构建 TI 板卡的定制文件系统

    环境搭建 PC 系统 Ubuntu 或 CentOS.推荐 Ubuntu 14.04.16.04. 安装必要工具 HOST# sudo apt-get install git build-essent ...

最新文章

  1. Loadrunner11点击录制脚本无响应,IE页面弹不出——解决方案汇总
  2. zzuli-1726:迷宫(语文功底题。。。)
  3. python之虚拟环境
  4. .net mysql操作类_ASP.NET数据库操作类实例
  5. 同一解决方案内的多个项目之间如何引用?
  6. linux 切换用户身份、su、sudo、/etc/sudoers
  7. TCP半连接队列(syns queue)和全连接队列(accept queue)
  8. c#数据库事务锁类型
  9. 大过年的,程序员在家改bug…
  10. 【原创】开源Math.NET基础数学类库使用(03)C#解析Matlab的mat格式
  11. element table多选表格_element-ui 表格打印
  12. EventBus 加强学习深入了解
  13. Mysql之insert,update,delete
  14. 刷题记录 kuangbin带你飞专题九:连通图
  15. 淘宝商品评论API接口
  16. 十二月英语——加入了新元素
  17. matlab 三维图像 叠加,利用 Matlab构建“波的叠加”图样
  18. 一个博客到底有多重要
  19. 基于SSH的校园网上订餐系统
  20. 【计算机网络】PPP协议

热门文章

  1. Windows Server2012R2插网线无网络---网络受限
  2. CAD块怎么创建?CAD块创建和使用教程
  3. 计算机c语言二级题库及答案txt,计算机二级c语言题库及答案
  4. 塔尔斯基学派代表作—模型论(教科书)
  5. 张震讲鬼故事MP3全集
  6. jstl标签库jar包下载
  7. 还没搞懂正则?熬夜到虚脱整理出来的Python的正则表达式总结(Regular Expression)
  8. Micro(三)[服务创建]
  9. 中国智能制造2025及工业物联网
  10. Linux编程:mktime通过时间获取时间戳