1、什么是shell变量 简单地说,变量就是用一个固定的字符串代替更多更复杂的内容,该内容里可能还会包含变量、路径、字符串等其他的内容。变量是暂时存储数据的地方及数据标记,所存储的数据存在于内存空间中,通过正确地调用内存空间中变量的名字就可以取出与变量对应的数据。 意义:使用变量的最大好处就是使程序开发更为方便,当然,在编程中使用变量也是必须的,否则就很难完成相关的程序开发工作。 2、怎么使用变量(赋值) [root@thzzc1994 ~]# oldboy="I am oldboy" [root@thzzc1994 ~]# echo $oldboy I am oldboy 变量的内容一般要加双引号,以防止出错,特别是当值里的内容之间有空格时。 3、变量类型 变量可分为两类:环境变量(也叫全局变量)和普通变量(也叫局部变量)。 环境变量,在创建它们的shell及其派生出来的任意子进程shell中使用。环境变量可分为自定义的和bash内置的。 普通变量,只能在创建它们的shell函数或shell脚本中使用。普通变量一般由开发者在开发脚本程序时创建。 4、环境变量 环境变量可以在命令行中设置和创建,但用户退出命令行时这些变量值就会丢失。 如果要永久保存环境变量,可在用户家目录下的.bash_profile或.bashrc中,或者全局配置/etc/bashrc或/etc/profile.d中定义。 有一些环境变量,比如HOME,PATH,SHELL,UID,USER等,在用户登录之前就已经被/bin/login程序定义好了。 通常环境变量被保存在~/.bash_profile或/etc/profile中。 设置环境变量的三种方法: (1)export A=value (2)declare -x A=value (3)A=value;export A/; 设置环境变量永久生效的方法: (1)用户环境变量:~/.bashrc和~/.bash_profile (2)全局环境变量:/etc/bashrc、/etc/profile和/etc/profile.d 提示:(1)书写crond定时任务时要注意,脚本要用到的环境变量最好先在所执行的shell脚本中重新定义。 (2)如果希望环境变量永久生效,则可以将其放在用户环境变量文件或全局环境变量文件里。 5、本地变量 本地变量在用户当前shell生存期的脚本中使用。如果在shell中启动另一个进程或退出,那么变量的值将会无效。 定义本地变量的三种方法: 变量=value 变量='value' 变量="value" 单引号''、双引号""和不加引号的区别 '':所见即所得 "":解析变量值,再输出 不加引号:解析变量值再输出,但必须是连续的 综上,一般建议使用双引号,代替不加引号。 6、系统运行shell的三种方式: (1)系统登录默认shell (2)非登录交互式shell(比如bash、ssh) (3)脚本执行非交互式shell 登录式:/etc/profile=>/etc/profile.d=>/etc/sysconfig/i18n 非登录式:~/.bashrc=>/etc/bashrc 7、命令定义变量 (1)date [root@thzzc1994 ~]# time=date [root@thzzc1994 ~]# echo $time 2018年 05月 01日 星期二 10:43:51 CST (2)$(date) --推荐使用 [root@thzzc1994 ~]# time=$(date) [root@thzzc1994 ~]# echo $time 2018年 05月 01日 星期二 10:44:04 CST