Bash特性及bash脚本编程初步
终端,附着在终端的接口程序
GUI:KDE,Gnome,Xfce,
CLI:/etc/shells
1:Bash的特性:
命令行展开:~,{}
命令别名:alias,unalias
命令历史 :history
文件名通配:glob
命令补全:$PATH
2:Bash特性之:命令hash(hash is a shell builtin,确定并记住每一个给定NAME名称的完整路径,如果不提供参数,则显示已经记住的命令的信息。)
命令hash:缓存此前命令的查找结果:key-value
Hash命令:
Hash:列出
Hash –d command:删除
Hash –r:清空
3:Bash特性之变量:
程序:指令+数据
指令:由程序文件提供
数据:IO设备,文件,管道,变量
程序:算法+数据结构
变量名+指向的内存空间
变量赋值:name=value
变量类型:存储格式,表示数据范围,参与的运算
编程语言:
强类型变量
弱类型变量:
bash把所有变量统统视作字符型
bash中的变量无需事先声明(相当于把声明和赋值过程同时实现)
声明:类型,变量名称
变量替换:把变量名出现的位置替换为其所指向的内存空间中的数据
变量引用:${var_name},$var_name
变量名:变量名只能包含数字,字母,下划线,而且不能以数字开头,不能够使用程序关键字
变量名:见名知义,命名机制遵循某种法则
bash变量类型:
(1):本地变量:作用域范围公为当前shell进程
变量赋值:name=value
变量引用:${name},$name
“”:变量名会替换为值
‘’:变量名不会替换值
查看变量:set
撤消变量:unset name
(2):环境变量:作用域为当前shell进程及子进程
变量赋值:
(1):export name=value
(2):name=value,export name
(3):declare –x name=value
(4):name=value,declare –x name
变量引用:${name},$name
注意:bash内嵌了许多环境变量(通常为全大写字符),用于定义bash的工作环境
PATH,HISTFILE,HISTSIZE,HOME,UID,PWD,OLDPWD
查看环境变量:export,env,declare –x,print env
撤消环境变量:unset name
只读变量:(只读变量不能重新赋值,并且不支持撤销,存活时间为当前shell进程的生命周期,随shell进程终止而终止)
declare –r name
readonly name
(3):局部变量:作用域仅为代码片段(函数上下文件)
(4):位置参数变量:向执行脚本的shell进程传递的参数
(5):特殊变量:shell内置的有特殊功用的变量
$?:执行命令的结果及状态
0:表未成功
1-255:失败
Bash特性之多命令执行:
~]#COMMAND1;COMMAND2;COMMAND3
逻辑运算:
运算符:
真(true,yes,on,1)
假(false,no,off,0)
与:两者都为真才为真
或:有一个为真就为真
非:取反
异或:
短路法则:
1:COMMAND1 && COMMAND2
如果COMMAND1为假,COMMAND2不执行
如果COMMAND1为真,COMMAND2执行
2:COMMAND1 || COMMAND2
如果COMMAND1为真,COMMAND2不执行
如果COMMAND1为假,COMMAND2执行