bash中的set, env, export unset的区别】的更多相关文章

参考这篇文章很好 参考这篇文章2 -------------------------- == set显示的是当前shell的变量, 不同的shell, 它的私有变量是不同的 env是显示用户的变量, 在不同的shell中, 用户变量都是一样的 export是指将shell变量 导出到 用户变量中的 那些变量. 某个用户登陆linux的时候, 执行的过程是: /etc/profile -> (.bash_profile [通常只有这个文件] | .bash_login | .profile ) -…
转自:shell环境变量以及set,env,export的区别 一.shell环境变量的分类以及set env export的区别: set:显示(设置)shell变量,包括的私有变量以及用户变量.不同类的shell有不同的私有变量 bash,ksh,csh每中shell私有变量都不一样. env:显示(设置)用户变量变量. export:显示(设置)当前导出成用户变量的shell变量. export 显示当前导出成用户变量的shell变量,并显示变量的属性(是否只读),按变量名称排序: dec…
在 Bash 里,可以通过 export 命令查看当前 Shell 进程的环境变量,这些环境变量一些是 Bash 自己创建的,还有一些是 Bash 从父进程继承来的,然而需要注意的是,父进程传给 Bash 的环境变量不一定是我们想象的那样. 在 C 语言层面,环境变量是存放在一个名为 environ 的全局变量里的,这个变量的值是一个字符串的数组,像这样: {"foo=1", "bar=2"} 在父子孙一辈辈进程中传递的就是这么个数组,我们嘴里说的环境变量的原貌其实…
首先,我们想到的会是 export(等价于 declare -x)命令: $ export | grep 'declare -x _=' 没有找到,那么结论就是 _ 不是环境变量?当然没那么简单,否则本篇文章就该结束了.别忘了还有 env(或者 printenv)命令: $ env | grep '_=' _=/usr/bin/env 这下怎么办,_ 到底是不是环境变量?谁说的对?然而下面还有更诡异的: $ bash -c "export | grep 'declare -x _='"…
Bash中的变量1.用户定义的变量变量的定义  用户定义的变量有字母数字及下划线组成,并且变量名的第一个字符不能为数字.            与其它UNIX名字一样,变量名是大小写敏感的. 对于变量,用户可按如下方式赋值:               name = value 变量的引用              在引用变量时,需在前面加$符号,用户也可以在变量间进行相互赋值(一个变量的值赋给另一个变量),如:               (前面的$是命令提示符)              …
set env export区别 set,env和export这三个命令都可以用来显示shell变量,区别[root@localhost root]# aaa=bbb[root@localhost root]# echo $aaabbb[root@localhost root]# set |grep aaaaaa=bbb[root@localhost root]# env |grep aaa[root@localhost root]# export aaa[root@localhost root…
1.本地变量 VAR=XYZ 2.局部变量 local VAR=XYZ 3.环境变量 在子shell中可以起作用 export VAR=XYZ 4.位置变量 $0 脚本名本身 $1 第一个参数 $2 第二个参数 ... ${10} 第十个参数 ${11} 第十一个参数 shift 依次向后移动参数 比如:分别显示第一.二.三个参数 !#/bin/bash shift shift 5.特殊变量 $? 脚本执行状态(0--正确,1-255错误,1/2/127保留) $# 参数的总个数 $* 参数列表…
每个 C 程序都有一个 main 函数,每个 main 函数都有一个 argv 参数,这个参数是一个字符串数组,这个数组的值是由该 C 程序的父进程在通过 exec* 函数启动它时指定的. 很多人说 Bash 中的 $0 的值就是 bash 这个 C 程序在它的 main 函数中获取到的 argv[0](zeroth argument)的值,我们可以通过 exec 命令的 -a 参数的功能演示一下: $  ( exec -a foo bash -c 'echo $0' ) foo $ ( exe…
本来不准备写这篇博客的,因为任务管理(job管理)非常非常常用,以至于觉得根本没有必要去写这样一个东西.但想了下,还是记录一下吧,也许有人会用到呢. 不知你是否碰到过这样的情况,当你兴致勃勃的打开VIM,写代码写到正酣时,运营MM或者产品MM气喘吁吁的跑过来:“赶紧帮我跑一下xx的数据,一会做PPT要用”.可是不想直接关闭当前的VIM,而且某些系统下,又不能新开tty(如设置了maxlogins参数)去执行这些任务,这可怎么办?这其实就涉及到了任务(job)管理. 那么什么是任务管理?顾名思义,…
bash中可以用字符串做数组下标吗例如 test["abc"]=1------解决方案-------------------- 好像是误会,是awk里可以,bash shell里不可以.…