Shell与其他语言的对比
1. php和java主要实现功能
(Shell,所见即所得。直接能看见结果,编译过程放在执行行过程中,所以要比java,c慢)
2. Shell简化管理操作
Bash变量
1. 变量命名规则:
1)变量名必须以字母或下划线开头,名字中间只能由字母,数字和下划线组成
2)变量名的长度不得超过255个字符
3)变量名在有效的范围内必须是唯一的
4)在Bash中,变量的默认类型都是字符串型
在任何系统中,目录名,文件名,变量名都要有含义
变量的值,如果有空格,需要用单引号或者双引号括起来
2. 变量按照存储类型分类
1)字符串型
2)整形
3)浮点型
4)日期型
3. 变量的分类
1)用户自定义变量。变量自定义的
2)环境变量:这种变量中主要保存的是和系统操作环境相关的数据。变量可以自定义,但是对系统生效的环境变量名和变量作用是固定的。
3)位置参数变量:这种变量主要是用来向脚本中传递参数和数据的,变量名不能自定义,变量作用是固定的
4)预定义变量:是bash中已经定义好的变量,变量名不能自定义,变量作用也是固定的
4. 用户自定义变量
变量名=变量值
=前后不能有空格
实例变量的调用: $变量名
实例变量叠加:
x=123
x="$x"456
x=${x}789
实例变量查看:
set: 查询系统下所有已经生效的变量,包括环境变量和用户自定义变量
set
选项:-u:如果设定此选项,调用未声明变量时会报错(默认无任何提示)
实例变量删除:unset
例: unset x
声明静态变量:readonly 变量 (注意:不能unset)
5. 环境变量
环境变量和用户自定义变量的区别:
环境变量是全局变量,用户自定义变量是局部变量。用户自定义变量只在当前的Shell中生效,环境变量在当前Shell和这个Shell的所有子Shell中生效
变量可以自定义,但是对系统生效的环境变量名和变量作用是固定的
命令:pstree 查看进程树
可以查看到当前Shell,父Shell, 子Shell
实例设置环境变量
imooc实例:
实例查看环境变量
1)set #查看所有变量
2)env #查看环境变量
删除环境变量: unset 变量名
常用环境变量
imoocPATH环境变量
PATH变量: 系统查找命令的路径
echo $PATH #查看PATH环境变量
PATH = "$PATH":/root/sh #增加PATH变量的值
实例PS1环境变量
定义了当前操作系统的提示符
实例 imooc 实例当前语系查询
locale #查询当前语系
- LANG : 定义系统主语系的变量
- LC_ALL :定义整体语系的变量
实例语系变量LANG
echo $LANG #查看系统当前语系
locale -a | more #查看Linux支持的所有语系
查询系统默认语系:cat /etc/sysconfig/i18n ???
Linux中文支持
前提条件,正确安装的中文字体和中文语系
1) 如果有图形界面,可以正确支持中文显示。
2) 如果使用第三方远程工具,只要语系设定正确,可以支持中文显示。
3) 如果使用纯字符界面,必须使用第三方插件(如zhcon等)。
6. 位置参数变量
imooc
$n主要的作用是向脚本中传递值
hello.sh 文本内容
实例执行hello.sh,并传递参数
实例注意:$0为命令名,即,文件名
imooc 实例$*和$@的区别:
imooc$*把所有参数看成一个整体,$@会区分对待
实例7. 预定义变量
imooc
实例
$$: 返回当前进程的PID
实例$$写在脚本里,输出脚本运行时的PID
实例$!: 后台运行的最后一个进程PID
实例将后台进程写入脚本后执行
实例接受键盘输入
read [选项] [变量名]
选项:
-p “提示信息”: 在等待read输入时,输出提示信息
-t “秒数”:read命令会一直等待用户,使用此选项可以指定等待时间
-n “字符数”: read命令只接受指定的字符数,就会执行
-s : 隐藏输入的数据,适用于机密信息的输入
实例 实例
网友评论