- 执行shell脚本时,会向系统内核请求启动一个新的进程,以便在该进程中执行脚本命令和子脚本,基本流程是:
- 使用source引入的子shell执行完毕后退回到父shell,这时子shell的变量和函数都还保存在当前shell中(当前进程)
- 而使用bash、sh执行完脚本后,进程结束,调用的资源释放,变量和函数等什么的就没有了
- eg: 如下执行结果是啥???
[root@bogon ~]# cat test.sh #!/bin/bashuser=`whoami`[root@bogon ~]# sh test.sh [root@bogon ~]# echo $user
- souce 和 . 的功能
- /etc/ini.d/function 系统自带的脚本函数库
- 写shell的习惯
- 第一行写上 脚本解释器标识
- 开头加上版本、日期、作者、功能
- 不使用中文
- 以.sh为扩展名
- 放到固定路径 eg: /opt/scripts
- {} [] '' `` "" 一次写完
- [] 两边空格
- if 等流程控制语句,先写架子,再添内容
- 变量和字符串定义加"" ,等号前后去空格,注意强引用''
- if () 条件中使用 "" 引用变量
- 区分环境变量、bash内置变量、普通变量