1.总结变量的类型及含义?
变量类型:
1,自定义变量:
在当前的shell命令行界面设置的变量是局部变量
例:
num=1
name=zhangsan
含义:仅在当前shell生效.
2,环境变量:
全局变量,通过export 导出后的局部变量是全局变量
例:
export num=1
export name=zhangsan
含义:在所有shell中生效,但是重启ssh连接将会重置(即重新按照定义的变量文件加载)
3,位置变量:
即按照传入参数的位置信息,输出
例:
cat a.sh
$1
$3
$6
bash a.sh 1,2,3,4,5,6
含义:
将传入的参数按照要求显示
4.预定义变量:
系统定义的变量,相当于内置的命令
示例:
$0 # 显示当前脚本文件名
$* # 全返
$@ # 单返
$# # 返回参数的个数
$$ # 当前进程的PID
$! # 上一个后台进程的
$? # 返回上一个命令的执行状态
含义:
便捷式对shell的操作.
# 相关操作
(1) 引用变量: $变量名 或者 ${变量名}
(2) 查看变量: echo $变量名 set env printenv
(3) 取消变量: unset 变量名
2.实现课堂案例计算长方形面积?(6种方式)
# 练习题
L=20
W=10
echo $((L*W))
echo $[L*W]
# 变量接收
declare -i area=$L*$W
echo area
let area1=$L*$W
echo area1
# 直接输出
# expr (运算符隔开)
expr $L \* $W
echo "$L*$W" | bc
awk 'BEGIN {L=10;W=20;print L*W}'
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