bash中的set, env, export unset的区别

参考这篇文章很好

参考这篇文章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解释成一个命令, 而实际上这样的命令是没有的!

posted @ 2016-06-02 10:01  noitanym  阅读(2065)  评论(0编辑  收藏  举报