1.总结变量的类型及含义
含义:顾名思义,变量就是程序设计语言中的一个可以变化的量,当然,可以变化的是变量的值。几乎所 有的程序设计语言中都有定义变量,并且其涵义也大同小异。从本质上讲,变量就是在程序中保存用户 数据的一块内存空间,而变量名就是这块内存空间的地址。 在程序的执行过程中,保存数据的内存空间的内容可能会不断地发生变化,但是,代表内存地址的 变量名却保持不变。
类型:
(1)局部变量(普通变量):只在某个特定范围生效的变量,比如只能在当前进程中使用的变量,只能 在函数中使用的变量。 在命令行设置:在当前进程生效 在脚本文件中设置:在脚本文件中生效 在函数中定义普通变量: local var="value" ,只在当前函数中生效 在用户登录时加载的文件中设置:在脚本文件中无法使用
(2)全局变量(环境变量):可以在创建他们的shell及其派生出来的子进程中使用(su 切换用户的时 候会读取新的环境变量)。 自定义环境变量和bash内置的环境变量。 自定义环境变量 export var 或 export var="value" declare -x var="value" , declare +x var 可取消环境变量 bash内置环境变量 shell程序在运行时,会接受一组变量来确定登录用户名、命令路径、终端类型、登录目录等等,这 些变量就是环境变量。shell内置的环境变量是所有的shell程序都可以使用的变量,环境变量会影 响所有的脚本的执行结果。
2.实现课堂案例计算长方形面积?(6种方式)
[root@localhost yaoxinli]# vim s.sh
#!/bin/bash
c=3
k=2
s1=$((c*k))
echo s1=$s1
s2=$[c*k]
echo s2=$s2
declare -i s3=$c*$k
echo s3=$s3
s4=`expr $c \* $k`
echo s4=$s4
s5=`echo $c*$k | bc`
echo s5=$s5
awk 'BEGIN{ c=3;k=2;print"s6=",c*k }'
let s7=$c*$k
echo s7=$s7
[root@localhost yaoxinli]# bash s.sh
s1=6
s2=6
s3=6
s4=6
s5=6
s6=6
s7=6
3.定义变量url=https://blog.csdn.net/weixin_45029822/article/details/103568815(通过多种方法实现)
1)截取网站访问的协议
1.变量字符串截取
echo ${url:0:5}
# https
2.变量切片
echo ${url%:*} # 从右往左 , " # "从左往右
# https
3.expr # expr substr 字符串 起始位置 截取长度
expr substr $url 1 5
# https
4.cut命令的使用
echo $url | cut -nb 1-5 #字符截取
# https
echo $url | cut -d : -f 1 #区域截取
# https
2)截取网站访问账号信息
1.cut命令的使用
echo $url | cut -d / -f 4 # -f 选择区域四
# weixin_45029822
2.expr命令
expr substr $url 23 15 # 起始 长度
# weixin_45029822
3.变量切片
tmp=${url#*net/}
echo ${tmp%%/*} # 最长匹配
# weixin_45029822
4.变量字符串截取
echo ${url:22:15} # {变量:起始:长度}
# weixin_45029822