1.4Bash变量

  • 1.4.1用户自定义变量
  • 1.4.1.1变量设置规则
1)变量名称可以由字母、数字和下划线组成,但是不能以数字开头
 2)在Bash中,变量的默认类型都是字符串型,如果需要进行数值计算,则必须指定变量类型为数值型
 3)变量用等号连接值,等号左右两侧不能有空格
 4)变量的值如果有空格,需要使用单引号或双引号包括
 5)在变量的值中,可以使用“\”转义符
 6)如果需要增加变量的值,那么可以进行变量值的叠加。不过变量需要使用双引号包含“$变量名”或用${变量名}包含
 7)如果是把命令的结果作为变量值赋予变量,则需要使用反引号或$()包含命令
 8)环境变量名建议大写,便于区分
  • 1.4.1.2变量分类
1)用户自定义变量:只在当前的shell生效
 2)环境变量:主要保存的是和系统操作环境相关的数据
 3)位置参数变量:主要用来向脚本当中传递参数或数据,变量名不能自定义,变量作用书固定的
 4)预定义变量:是Bash中已经定义好的变量,变量名不能自定义,变量作用也是固定的
  • 1.4.1.3本地变量(用户自定义变量)
1)变量定义
    name="tom"
 2)变量叠加
    aa=123      aa="$aa"456		aa=${aa}789
 3)变量调用
    echo  $aa
 4)变量查看
    set
 5)变量删除
    unset name
  • 1.4.2环境变量
  • 1.4.2.1设置环境变量
1)声明变量
    export 变量名=变量值
2)查询变量
    env
3)删除变量
    unset
  • 1.4.2.2系统常见环境变量
1)系统查找命令路径
    echo $PATH
2)PATH变量叠加
    PATH=”$PATH”:/root/sh

PS1:定义系统提示符的变量

shell 脚本临时设置java 环境变量_Linux 


shell 脚本临时设置java 环境变量_shell_02

  • 1.4.3位置参数变量
  • 1.4.4预定义变量
  • 1.4.4.1预定义变量

shell 脚本临时设置java 环境变量_Linux _03

  • 1.4.4.2接收键盘输入 read
read [选项] [变量名]
选项:
    -p 提示信息         在等待read输入时,输出提示信息
    -t 秒数               read命令会一直等待用户输入,使用此选项可以指定等待时间
    -n 字符数          read命令只接受指定的字符数,就会执行
    -s 隐藏               隐藏输入的数据,适用于机密信息的输入
  • 1.4.5数值运算与运算符
  • 1.4.5.1declare声明变量类型
declare [+/-][选项] 变量名 
选项: 
-: 给变量设定类型属性 
+: 取消变量的类型属性 
-i: 将变量声明为整数型(integer) 
-x: 将变量声明为环境变量 
-p: 显示指定变量的被声明的类型
  • 1.4.5.2数值运算
方法1 
[root@localhost ~]# aa=11 
[root@localhost ~]# bb=22 
#给变量aa和bb赋值 
[root@localhost ~]# declare -i cc=$aa+$bb

方法2:expr或let数值运算工具 
[root@localhost ~]# aa=11 
[root@localhost ~]# bb=22 
#给变量aa和变量bb赋值 
[root@localhost ~]# dd=$(expr $aa + $bb) 
#dd的值是aa和bb的和。注意“+”号左右两侧必须有空格

方法3(推荐):“$((运算式))”或“$[运算式]” 
[root@localhost ~]# aa=11 
[root@localhost ~]# bb=22 
[root@localhost ~]# ff=$(( $aa+$bb )) 
[root@localhost ~]# gg=$[ $aa+$bb ]
  • 1.4.5.3运算符
示例:
[root@localhost ~]# aa=$(( (11+3)*3/2 )) 
#虽然乘和除的优先级高于加,但是通过小括号可以调整运算优先级 
[root@localhost ~]# bb=$(( 14%3 )) 
#14不能被3整除,余数是2 
[root@localhost ~]# cc=$(( 1 && 0 )) 
#逻辑与运算只有想与的两边都是1,与的结果才是1,否则与的结果是0
  • 1.4.6变量测试与内容替换

1.5环境变量配置文件

  • 1.5.1简介

环境变量配置文件中主要是定义对系统的操作环境生效的系统默认环境变量,比如PATH、HISTSIZE、PS1、HOSTNAME等默认环境变量。

/etc/profile                                
/etc/profile.d/*.sh                         
/etc/bashrc                             
~/.bash_profile                            
~/.bashrc

注意:放在/etc下的配置文件对所有用户生效;~/目录下只对root用户生效

使配置文件直接生效:

source 配置文件 
或
    .配置文件
  • 1.5.2作用

环境变量配置文件调用流程

shell 脚本临时设置java 环境变量_脚本_04

  • 1.5.2.2主要环境配置文件作用

/etc/profile的作用

USER变量:                    当前用户EUID
LOGNAME变量:                 当前用户名
MAIL变量:                    邮箱
PATH变量:                    
HOSTNAME变量:                主机名 
HISTSIZE变量:                历史
umask:                         权限
调用/etc/profile.d/*.sh文件

~/.bash_profile的作用

调用了~/.bashrc文件。 
在PATH变量后面加入了“:$HOME/bin”这个目录

~/.bashrc的作用

定义默认别名 
调用/etc/bashrc

/etc/bashrc的作用

PS1变量 
umask 
PATH变量 
调用/etc/profile.d/*.sh文件
  • 1.5.3其他配置文件和登录信息
  • 1.5.3.1其他配置文件
1、注销时生效的环境变量配置文件 
~/.bash_logout 
2、其他配置文件 
~/bash_history
  • 1.5.3.2shell登录信息
本地终端欢迎信息: /etc/issue

shell 脚本临时设置java 环境变量_脚本_05

远程终端欢迎信息: /etc/issue.net 
转义符在/etc/issue.net文件中不能使用 
是否显示此欢迎信息,由ssh的配置文件/etc/ssh/sshd_config决定,
    加入“Banner /etc/issue.net”行才能显示(记得重启SSH服务) 
登陆后欢迎信息:/etc/motd 
不管是本地登录,还是远程登录,都可以显示此欢迎信息