bash 特性及bash脚本编程初步
终端,附着在终端的接口程序:
GUI:KDE,GNome,Xfce
CLI: /etc/shells
bash
zsh
fish
bash的特性:
命令行展开:~,{}
命令别名:alias, unalias
命令历史:history
文件通配:glob
快捷键:Ctrl+a, u, k, l
命令补全:$PATH
路径补全 :
bash特性之:命令 hash
缓存此前命令的查找结果:key-value
hash 命令
hash:l列出
hash: -d COMMAND:删除
hash -r :清空
bash的特性之:变量
程序:指令+数据
指令:由程序文件提供:
数据:IO设备,文件,管道,变量
程序: 算法+数据结构
变量名+指向内存空间
变量赋值:name=value
48762047827
变量类型:存储格式、表示格式范围,参与运算
强类型变量
肉类型变量:
bash把所有变量统统是做字符型
bash中的变量了无需事先声明:
变量替换:把变量名出现的位置替换为其所指向的内存空间中数据
变量引用:${var_name},$var_name
变量名:变量名只能包含字母,数字,下划线,而且不能以数字开头:
变量:见名知意,命名机制遵循某种法则:不能够适应程序的保留字,例如if, else,then,while 等等
bash 变量类型:
本地变量: 作用领域仅为当前shell进程:
环境变量:作用领域为当前shell进程及其子进程:
局部变量:作用域仅为某代码片段(函数上下文)
位置参数变量:当执行脚本的shell进程传递的参数;
特殊变量|:shell内置的有特殊功用的变量
$?:
0:成功
1-255:失败
本地变量:
变量赋值:name=value
变量引用:${name},$name
" ":变量名会替换为其值
查看变量:set
撤销变量:unset name
注意:此处非变量引用:
环境变量:
变量赋值:
(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, HISTFILESIZE, HISTCONTROL, SHELL, HOME,UID, PWD, OLDPWD
查看环境变量:export,declare -x printenv, env
撤销环境变量: unset name
只读变量:
(1) declare -r name
(2) readonly name
只读变量无法重新赋值,并且不支持撤销:存活时间为当时shell进程的生命周期,随shell进程进程终止而终止;
bash特性之多命令执行:
~]# COMMAND1; COMMAND2,COMMAND3;…
逻辑运算:
运算数:真(true, yes, on. 1)
假(false, no, off.0)
与
1&&1=1
1&&0=0
0&&1=0
0&&0=0
或:
1 || 1=1
1 || 0=1
0 || 1=0
0 || 0=0
非
! 1=0
!0=1
短路法则:
~]COMMAND1 && COMMAN2
COMMAND1为假,则COMMAND2必须执行
~]#COMMAND1 || COMMAND2
COMMAND1为真,则COMMAND2不会执行
否则,COMMAND1 为假,则COMMAND2必须执行
示例:~]# id $username || useradd $username
原创文章,作者:shadow,如若转载,请注明出处:http://www.178linux.com/64525