SHELL编程
来源:互联网 发布:怎么改mac的用户名 编辑:程序博客网 时间:2024/06/16 05:47
bash变量
什么是变量与变量分类
变量是计算机内存的单元,其中存放的值可以改变。
变量让你能够把程序中准备使用的每一段数据都赋给一个简短、易于记忆的名字,因此他们十分有用。
变量主要就是放值
变量命名规则
1、变量不能数字开头
2、变量名长度不能超过255个字符
3、变量名在有效的范围内必须是唯一的
4、在Bash中,变量的默认类型都是字符串
变量按照储存数据分类
字符串型、整型、浮点型、日期型
变量的分类
1、用户自定义变量。变量自定义的
变量名=变量值 //等号两边不能加空格name="li si"x=5变量调用echo $变量名 -例如echo $xecho name变量叠加y=123y="$y"456echo $y //123456y=${y}789echo y //123456789删除变量unset 变量名 //不要加$
2、环境变量:这种变量中主要保存的是和系统操作环境相关的数据。变量可以自定义,但是对系统生效的环境变量名和变量作用是固定的。
环境变量与用户自定义变量的区别?
有用户自定义变量只在当前的Shell中生效。环境变量在当前Shell和这个Shell的所有子Shell中生效
pstree //查看进程树设置环境变量export 变量名=变量值或变量名=变量值export 变量名c查看环境变量set //查看所有变量env //查看环境变量删除环境变量unset 环境变量名常用环境变量PATH变量:系统查找命令路径echo $PATH //查看PATH环境变量PATH="$PATH":/root/sh //增加PATH变量的值(临时生效)PS1环境变量PS1变量:命令提示符设置 - \d:显示日期,格式为"星期 月 日" - \H:显示完整的主机名。如默认的主机名"localhost.localdomain" - \t:显示24小时制时间,格式为"HH:MM:SS" - \A:显示24小时制时间,格式为"HH:MM" - \u:显示当前用户名 - \w:显示当前所在目录的完整名称 - \W:显示当前所在目录的最后一个目录 - \$:提示符。如果root用户会显示提示符为"#",如果是普通用户会显示提示符为"$"当前语系查询locale //查询当前系统语系 -LANG:定义系统主语的变量 -LC_ALL:定义整体语系的变量locale -a | more //查看Linux支持的所有语系echo $LANG //查看系统当前的语系默认语系cat /etc/sysconfig/i18n //查询系统默认语系
3、位置参数变量:这种变量主要是用来向脚本当中传递参数或数据的,变量名不能自定义,变量作用是固定的
位置参数变量 作用 $n n为数字,$0代表命令本身,$1-$9代表第一到第九个参数,十以上的参数需要用大括号,如${10} $* 这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体 $@ 这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待 $# 这个变量代表命令行中所有参数的个数
4、与定义变量:是Bash中已经定义好的变量,变量名不能自定义,变量作用也是固定的
预定义变量 作用 $? 最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确 $$ 当前进程的进程号(PID) $! 后台运行的最后一个进程的进程号(PID) find / -name hello.sh & //放入后台运行
接受键盘输入
read [选项] [变量名] -p:'提示信息':在等待read输入时,输出提示信息 -t:秒数 read命令会一直等待用户输入,使用此选项可以指定等待时间 -n: 字符数 read命令只接受指定的字符数,就会执行 -s: 隐藏输入的数据,适用与机密信息的输入
Shell运算符
shell变量的缺点?
1、弱类型;2、默认字符串类型
declare生命变量类型
declare [+/-] [选项] 变量名 - :给变量设定类型属性 + :取消变量的类型属性 -a : 将变量声明为数组型 -i : 将变量声明为整数型(integer) -x : 将变量声明为环境变量 -r : 将变量声明为只读变量 -p : 显示指定变量的被声明的类型
a=11b=22declare -i c=$a+$becho $c // 33是声明数组变量movie[0]=zpmovie[1]=tpdeclare -a movie[2]=live查看数组echo ${movie} //zpecho ${movie[2]} //liveecho ${movie[*]} // zp tp live
数值运算方法1
a=11b=22declare -i c=$a+$becho $c // 33方法2:expr或let数值运算工具aa=11bb=22dd=$(expr $aa + $bb) //dd的值是aa和bb的和。注意"+"号两侧必须有空格方法3:"$((运算式))"或"$[运算式]"aa=11bb=22ff=$(($aa+$bb))echo $ff // 33gg=$[$aa+$bb]echo $gg // 33
变量测试
//例子1:测试x=${y-新值}unset y //删除变量yx=${y-2} //进行测试echo $x //2 因为变量y不存在,所以x=new
环境变量配置文件
变量类型(1.用户自定义变量(本地变量)2.环境变量3.预定义变量4.位置参数变量)
1、source命令
source 配置文件或. 配置文件
环境变量配置文件/etc/profile/etc/profile.d/*.sh~/.bash_profile~/.bashrc/etc/bashrc
环境变量配置文件的功能
1、/etc/profile的作用
USER变量
LOGNAME变量
MAIL变量
PATH变量
HOSTNAME变量
HISTSIZE变量
umask:
的调用/etc/profile.d/*.sh文件
umask权限 //查看系统默认权限在注意: 1)文件最高权限为666 2)目录最高权限为777 3)权限不能使用数字进行换算,而必须使用字母 4)umask定义的权限,是系统默认权限中准备丢弃的权限
其他配置文件
1.注销时生效的环境变量配置文件
~/.bash_logout
2.历史命令
~/.bash_histroy
3.shell登录信息
本地终端信息: /etc/issue
转义符
阅读全文
0 0
- shell 以及shell编程
- Shell和Shell编程
- 【shell】shell 编程基础
- Shell及其Shell编程
- Shell编程
- Shell编程
- Shell编程
- shell编程
- Shell编程
- Shell编程
- shell 编程
- Shell编程
- Shell编程
- shell编程
- shell编程
- Shell编程
- shell编程
- Shell 编程
- 如何设置主键和外键,实现级联更新、级联删除
- Base64图片工具类-JAVA
- 动态手势识别--手势采集与手势匹配界面(四)
- E
- Codeforces Round #421 (Div. 2) | B. Mister B and Angle in Polygon
- SHELL编程
- 关于多线程的使用
- ECMAScript新功能介绍(es6 es2015)
- Windows下80端口被进程System&PID=4占用的解决方法
- Ubuntu修改计算机名
- Java学习笔记-《Java程序员面试宝典》-第5章Java Web-5.1Servlet与JSP(5.1.8-5.17)
- 在Linux CentOS 6.6上安装Python 2.7.9
- socket C/C++编程(1)通过服务器的外网ip,对服务器进行远程端口的登录访问(以win10客户端远程访问外网ubuntu服务器为例)
- @Autowired与@Resource的区别