一、总结变量的类型及含义
1.自定义变量
含义:仅在当前终端生效.
2.环境变量
含义:在所有shell中生效,但是重启ssh连接将会重置(即重新按照定义的变量文件加载)
name=zhangsan
export age=13
bash 代表开启子shell
让变量永久生效 vim /etc/bashrc
name=zhangsan
export age=14
不会立即生效,需要加载bashshell程序即:bash a.sh a b c
3.位置变量
含义: 将传入的参数按照要求显示 ,即按照传入参数的位置信息,输出
cat a.sh
$1
$3
$6
bash a.sh 1,2,3,4,5,6
4.预定义变量
含义: 便捷式对shell的操作.
$0 # 显示当前脚本文件名
$* # 全返
$@ # 单返
$# # 返回参数的个数
$$ # 当前进程的PID
$! # 上一个后台进程的
$? # 返回上一个命令的执行状态
#相关操作
(1) 引用变量: $变量名 或者 ${变量名}
(2) 查看变量: echo $变量名 set env printenv
(3) 取消变量: unset 变量名
二、实现课堂案例计算长方形面积?(6种方式)
[root@aaa ~]# vim a.sh
#!/bin/bash
l=10
w=2
第一种方式:
s1=
l
(
(
l
∗
w
)
)
e
c
h
o
1
−
−
−
−
−
−
−
l((l*w)) echo 1-------
l((l∗w))echo1−−−−−−−s1
第二种方式:
let s2=
l
∗
l*
l∗w
echo 2-------$s2
第三种方式:
s3='expr $l *
w
′
e
c
h
o
3
−
−
−
−
−
−
−
w' echo 3-------
w′echo3−−−−−−−s3
第四种方式:
s4 = ‘echo
l
∗
l*
l∗w | bc’
echo 4-------$s4
第五种方式:
s5=
[
l
∗
w
]
e
c
h
o
5
−
−
−
−
−
−
−
[l*w] echo 5-------
[l∗w]echo5−−−−−−−s5
第六种方式:
declare -i s6=
l
∗
l*
l∗w
echo 6-------$s6
三、定义变量url=https://blog.csdn.net/weixin_45029822/article/details/103568815(通过多种方法实现)
1.截取网站访问的协议
[root@aaa ~]# url=https://blog.csdn.net/weixin_45029822/article/details/103568815
第一种方式:
[root@aaa ~]# echo ${url:0:5}
https
第二种方式:
[root@aaa ~]# echo ${url%😗}
https
第三种方式:
[root@laaa ~]# echo $url | cut -d : -f 1
https
2.截取网站访问账号信息
[root@aaa ~]# url=https://blog.csdn.net/weixin_45029822/article/details/103568815
第一种方式:
[root@aaa ~]# echo ${url:6}
//blog.csdn.net/weixin_45029822/article/details/103568815
第二种方式:
[root@aaa ~]# echo ${url#*:}
//blog.csdn.net/weixin_45029822/article/details/103568815
第三种方式:
[root@aaa ~]# basename $url
103568815