SHELL编程

bash变量

什么是变量与变量分类

变量是计算机内存的单元,其中存放的值可以改变。
变量让你能够把程序中准备使用的每一段数据都赋给一个简短、易于记忆的名字,因此他们十分有用。

变量主要就是放值

变量命名规则

1、变量不能数字开头
2、变量名长度不能超过255个字符
3、变量名在有效的范围内必须是唯一的
4、在Bash中,变量的默认类型都是字符串

变量按照储存数据分类

字符串型、整型、浮点型、日期型

变量的分类

1、用户自定义变量。变量自定义的

变量名=变量值     //等号两边不能加空格
name="li si"
x=5
变量调用
echo $变量名
    -例如
echo $x
echo name

变量叠加
y=123
y="$y"456
echo $y    //123456
y=${y}789
echo y      //123456789

删除变量
unset 变量名       //不要加$

2、环境变量:这种变量中主要保存的是和系统操作环境相关的数据。变量可以自定义,但是对系统生效的环境变量名和变量作用是固定的。
环境变量与用户自定义变量的区别?
有用户自定义变量只在当前的Shell中生效。环境变量在当前Shell和这个Shell的所有子Shell中生效

pstree  //查看进程树

设置环境变量
export 变量名=变量值
或
变量名=变量值
export 变量名


c查看环境变量
set     //查看所有变量
env     //查看环境变量


删除环境变量
unset 环境变量名


常用环境变量
PATH变量:系统查找命令路径
echo $PATH   //查看PATH环境变量
PATH="$PATH":/root/sh      //增加PATH变量的值(临时生效)


PS1环境变量
PS1变量:命令提示符设置
    -  \d:显示日期,格式为"星期 月 日"
    -  \H:显示完整的主机名。如默认的主机名"localhost.localdomain"
    -  \t:显示24小时制时间,格式为"HH:MM:SS"
    -  \A:显示24小时制时间,格式为"HH:MM"
    -  \u:显示当前用户名
    -  \w:显示当前所在目录的完整名称
    -  \W:显示当前所在目录的最后一个目录
    -  \$:提示符。如果root用户会显示提示符为"#",如果是普通用户会显示提示符为"$"

当前语系查询
locale  //查询当前系统语系
    -LANG:定义系统主语的变量
    -LC_ALL:定义整体语系的变量

locale -a | more    //查看Linux支持的所有语系

echo $LANG     //查看系统当前的语系

默认语系
cat /etc/sysconfig/i18n     //查询系统默认语系

3、位置参数变量:这种变量主要是用来向脚本当中传递参数或数据的,变量名不能自定义,变量作用是固定的

 位置参数变量      作用 

 $n       n为数字,$0代表命令本身,$1-$9代表第一到第九个参数,十以上的参数需要用大括号,如${10} 
 $*       这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体 
 $@       这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待 
 $#       这个变量代表命令行中所有参数的个数 

4、与定义变量:是Bash中已经定义好的变量,变量名不能自定义,变量作用也是固定的

 预定义变量      作用 

 $?       最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确 
 $$       当前进程的进程号(PID)
 $!       后台运行的最后一个进程的进程号(PID) 

find / -name hello.sh &     //放入后台运行

接受键盘输入

read [选项] [变量名]
    -p:'提示信息':在等待read输入时,输出提示信息
    -t:秒数  read命令会一直等待用户输入,使用此选项可以指定等待时间
    -n: 字符数  read命令只接受指定的字符数,就会执行
    -s: 隐藏输入的数据,适用与机密信息的输入

Shell运算符

shell变量的缺点?

1、弱类型;2、默认字符串类型

declare生命变量类型
declare [+/-] [选项] 变量名
        - :给变量设定类型属性
        + :取消变量的类型属性
        -a : 将变量声明为数组型
        -i : 将变量声明为整数型(integer)
        -x :  将变量声明为环境变量
        -r : 将变量声明为只读变量
        -p : 显示指定变量的被声明的类型
a=11
b=22
declare -i c=$a+$b
echo $c        // 33

是声明数组变量
movie[0]=zp
movie[1]=tp
declare -a movie[2]=live
查看数组
echo ${movie}  //zp
echo ${movie[2]}  //live
echo ${movie[*]}   // zp  tp  live

数值运算方法1


a=11
b=22
declare -i c=$a+$b
echo $c        // 33
方法2:expr或let数值运算工具
aa=11
bb=22
dd=$(expr $aa + $bb)  //dd的值是aa和bb的和。注意"+"号两侧必须有空格

方法3:"$((运算式))""$[运算式]"
aa=11
bb=22
ff=$(($aa+$bb))
echo $ff       // 33
gg=$[$aa+$bb]
echo $gg       // 33
变量测试

这里写图片描述

//例子1:测试x=${y-新值}
unset y         //删除变量y
x=${y-2}       //进行测试
echo $x        //2     因为变量y不存在,所以x=new

环境变量配置文件

变量类型(1.用户自定义变量(本地变量)2.环境变量3.预定义变量4.位置参数变量)

1、source命令
source 配置文件
或
. 配置文件
环境变量配置文件
/etc/profile
/etc/profile.d/*.sh
~/.bash_profile
~/.bashrc
/etc/bashrc
环境变量配置文件的功能

1、/etc/profile的作用
USER变量
LOGNAME变量
MAIL变量
PATH变量
HOSTNAME变量
HISTSIZE变量
umask:
的调用/etc/profile.d/*.sh文件

umask权限         //查看系统默认权限

在注意:
            1)文件最高权限为666
            2)目录最高权限为777
            3)权限不能使用数字进行换算,而必须使用字母
            4umask定义的权限,是系统默认权限中准备丢弃的权限

其他配置文件
1.注销时生效的环境变量配置文件
~/.bash_logout
2.历史命令
~/.bash_histroy
3.shell登录信息
本地终端信息: /etc/issue
转义符
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值