参考这篇文章很好

参考这篇文章2

-------------------------- ==

set显示的是当前shell的变量, 不同的shell, 它的私有变量是不同的

env是显示用户的变量, 在不同的shell中, 用户变量都是一样的

export是指将shell变量 导出到 用户变量中的 那些变量.

某个用户登陆linux的时候, 执行的过程是:

/etc/profile -> (.bash_profile [通常只有这个文件] | .bash_login | .profile ) -> .bashrc -> /etc/bashrc -> .bash_logout

在.bash_profile中有:

if [ -f ~/.bashrc ]; then
. .bashrc
fi # bash脚本编程中: 如果你表示单纯的 纯粹的字符串, 一定要使用 双引号
# 但是如果你要表示除 纯粹字符串之外的 内容: 如: 文件/ 文件夹 /文件集合等 就不要加 引号 # 文件集合: 在bash中支持 通配符的使用: * ?
如: for i in /etc/profile.d/*.sh; do .....
done # shell bash编程中, 除了函数使用{ }外, 语法结构, 如if for 等都不是使用大括号来
# 界定范围的, 而是用关键字来界定范围的
# 如: if ... then ... else ...fi for i in ...; do ....done bash编程中的函数 通常是不需要 返回值的,
如果需要:[参考文章](http://blog.chinaunix.net/uid-726813-id-2060120.html) wget -c ....中的-c 是指 continue, 即断点续传的意思...



图中的source就是引入来源的意思, 所以这个命令就是 source: source the global definition

定义一个变量的时候, 要var=value, 紧挨着写, 不要分开写: var = value,

因为这样的话, bash会将var解释成一个命令, 而实际上这样的命令是没有的!

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

  1. shell变量/环境变量和set/env/export用法_转

    转自:shell环境变量以及set,env,export的区别 一.shell环境变量的分类以及set env export的区别: set:显示(设置)shell变量,包括的私有变量以及用户变量.不 ...

  2. Bash 中的环境变量

    在 Bash 里,可以通过 export 命令查看当前 Shell 进程的环境变量,这些环境变量一些是 Bash 自己创建的,还有一些是 Bash 从父进程继承来的,然而需要注意的是,父进程传给 Ba ...

  3. Bash 中的 _ 是不是环境变量

    首先,我们想到的会是 export(等价于 declare -x)命令: $ export | grep 'declare -x _=' 没有找到,那么结论就是 _ 不是环境变量?当然没那么简单,否则 ...

  4. Bash中的变量

    Bash中的变量1.用户定义的变量变量的定义  用户定义的变量有字母数字及下划线组成,并且变量名的第一个字符不能为数字.            与其它UNIX名字一样,变量名是大小写敏感的. 对于变量 ...

  5. set env export区别

    set env export区别 set,env和export这三个命令都可以用来显示shell变量,区别[root@localhost root]# aaa=bbb[root@localhost r ...

  6. Linux bash中的变量分类

    1.本地变量 VAR=XYZ 2.局部变量 local VAR=XYZ 3.环境变量 在子shell中可以起作用 export VAR=XYZ 4.位置变量 $0 脚本名本身 $1 第一个参数 $2 ...

  7. Bash 中的 $0 在什么时候不是 argv[0]

    每个 C 程序都有一个 main 函数,每个 main 函数都有一个 argv 参数,这个参数是一个字符串数组,这个数组的值是由该 C 程序的父进程在通过 exec* 函数启动它时指定的. 很多人说 ...

  8. Bash中的任务(job)管理

    本来不准备写这篇博客的,因为任务管理(job管理)非常非常常用,以至于觉得根本没有必要去写这样一个东西.但想了下,还是记录一下吧,也许有人会用到呢. 不知你是否碰到过这样的情况,当你兴致勃勃的打开VI ...

  9. bash中不可以用字符串做数组下标

    bash中可以用字符串做数组下标吗例如 test["abc"]=1------解决方案-------------------- 好像是误会,是awk里可以,bash shell里不 ...

随机推荐

  1. node.js 设置静态文件托管

    1.在app.js文件中设置静态文件托管 /*应用程序入口文件*/ /*加载express模块*/ var express = require('express'); /*加载模板处理模块*/ var ...

  2. iOS App沙盒目录结构

    转自:http://blog.csdn.net/wzzvictory/article/details/18269713 出于安全考虑,iOS系统的沙盒机制规定每个应用都只能访问当前沙盒目录下面的文件( ...

  3. Linux上安装JDK1.8,tomcat9,以及mysql8的步骤

    (该篇是在centos7上安装JDK1.8.0_201  tomcat9.0.16 和 mysql8.0.15) 一.安装JDK 方式一 1.首先,下载JDK(链接http://www.oracle. ...

  4. 下载 Eclipse 免安装版~

    进入https://www.eclipse.org/downloads/

  5. 查看 apache 的编译参数

    cat /home/oldboy/run/apache/build/config.nice 范例 2: [root@VM-002 ~]# cat /home/oldboy/run/apache/bui ...

  6. composer 被墙后镜像设置

    这一步主要更改镜像,不从外网直接取,现在改成了中国的一家镜像站.就是下面这个地址. https://packagist.phpcomposer.com#阿里云的composer镜像源composer ...

  7. 017-zabbix_proxy分布式监控部署

    一.proxy分布式监控介绍 来源于zabbix官网: https://www.zabbix.com/documentation/3.4/zh/manual/distributed_monitorin ...

  8. Linux日常之命令uniq

    命令uniq 作用是过滤文件内容重复部分 需要注意的是,该命令只是对相邻的行进行比较,若两个相同的行不相邻,不会被过滤掉 选项 -c,在每行行首显示出该行出现的次数 -d,只显示出重复的行 -u,只显 ...

  9. 使用kettle实现循环

    Kettle使用脚本实现循环(十) https://blog.csdn.net/BushQiang/article/details/90264616 kettle实现循环 https://blog.c ...

  10. DevExpress Winforms Controls:安装使用系统要求文档

    [DevExpress WinForms v19.1下载] 本文档包含了有关安装和使用DevExpress WinForms控件的系统要求信息. .NET Framework 下图展示了支持的.NET ...