02_shell变量

语法:变量

1)是啥:

程序=数据+数据操作
变量就是数据的载体,变量之所以称之为变量,就是因为其中的值可以改变

2)为什么:

变量为数据设置一个引用,以后再使用这个数据时,可以通过引用获取数据

3)怎么用:

增:
格式:变量名=变量值    =  号还是赋值的意思
注意1:
	1,变量名不能数字开头
	2,变量名不能有空格这种特殊字符
	3,起名做到见名知意
	4,变量名不要使用关键字
注意2:
	1,= 号左右两侧不要有空格
注意3:
	1,变量值可以不使用引号,但是如果值有空格,必须使用引号
	2,""和''的区别,变量之间赋值时,如果是"",那么赋的是变量的值,如果是''只是赋值调用格式

02_shell变量

查:
1,格式:"${变量名}"
2,${变量名} | $变量名 这两种格式也是可以的,因为shell是弱计算机语言,语法要求不是很严格
3,但是我们使用最严格的形式来,代码行数多了,同样效果语法多了,检查错误,操作起来困难
改:
1,name="值",格式,同增
删:
unset
下图标准格式:
增查
改查
删查

02_shell变量

4)变量的分类:

1,本地变量(局部)
只有当前shell可以使用的变量
2,全局变量(静态变量)
被多个shell 共享的变量
思想:将本地变量设置为全局变量就是本地变量导出到共享空间
格式:export 局部变量
查询全局变量:env
注意1:如果是全局变量,建议变量名所有字母都大写
注意2:全局变量要慎用,活的JB太久,浪费
3,内置变量(特殊变量)
需求:编写shell获取某个变量下的子级
对应的功能,就是在文本中先输入好代码格式,在命令行中去调用他
使用的时候比如:文本中 ls "$1"  就是打开命令行中第一个值得地址,这个值可以变得,输入别得目录就打开别得,这就这玩意得用处
$N最多只能到$9,$10是第一个值后面加个0,$#是总个数,$*是全部调用,$0是文件名
看下图:第一个值是110,第十个值是abc,$10输出的是1100
$11输出的就是1101  $12是1102了,我们自己输入的第十个及以上的值就是没用的了,读取不到

02_shell变量

4,动态获取----read
格式:read      -p       "提示语句"     变量名  (中间都是一个空格,注意加)
类似 input 似的 让用户自己输入一个数据

02_shell变量

5,命令的赋值

02_shell变量

6,查看目录下的子级数量
格式:ls /root | wc -l

02_shell变量
02_shell变量
02_shell变量

二,变量的练习题

1)使用shell脚本,输出当前所在的目录
shuchu=`pwd`  这个符号是  tab 上面那个键,作用是被包裹着的变量如果是命令,会先执行这个命令,再将执行后的值赋值给前面的变量,记住!!

02_shell变量

2)计算/etc目录下有多少个子级目录
count=`ls   /etc    |    wc     -l`  中间这个命令是输出etc目录下的子级数量,空格都是一个,记得加上

02_shell变量

3)动态获取某个目录,然后再获取目录下的子级数量
第一种;
$N格式的,想要访问的目录名输入在请求命令时

02_shell变量

第二种:
read方式

02_shell变量