bash特性及bash脚本编程入门

bash特性及bash脚本编程入门

终端,及附着在终端上的接口程序:

GUI:KDE,GNome,Xface;

GLI:/etc/shells;

bash特性:命令hash

命令hsah:记录或显示命令位置;

功能是用于管理命令运行时查询的哈希表。hash命令可以显示与删除命令运行时系统查询的哈希表信息,如果不加任何参数,则会默认输出路径列表的信息,这份列表会包含先前hash命令调用找到的Shell环境中命令的路径名。

常用选项:

hash:列出哈希表

hash -d 命令: 删除单个命令;

hash -r:清空哈希表;

bash特性:变量

程序:指令+数据;

指令:由程序文件提供;

数据:标准输入、文件、管道、变量;

程序:算法+数据结构;

变量赋值:变量名+指向的内存空间;

变量赋值方式:名称=值;

变量类型:存储格式、表示数据范围、参与的运算;

注意:bash属于弱类型变量,把所有变量通通视为字符类型;不支持浮点数据;

bash变量无需事先声明,相当于,把声明和赋值过程同时实现;

变量替换:把变量名出现的位置替换为其所指向内存空间中数据;

变量引用:${变量名},大括号可以省略,常用为$变量名;

变量名:变量名只能包含字母、数字、下划线而且不能以数字开头;变量名要做到:见名知义,命名机制遵循某种法则;不能够使用程序的保留字符,例如if、else、while等等;

bash的变量类型:本地变量、环境变量、局部变量、位置参数、特殊变量;

本地变量:作用范围仅为当前shell进程;

赋值方式:变量名=值;

引用方式:$变量名、${变量名};

"$变量名"(弱引用):变量名会替换为其值;

'$变量名'(强引用):变量名不会替换为其值;

查看变量:set;

变量撤销:unset;例如 unset 变量名;注意:此处非变量引用不需要$;

环境变量:作用范围当前shell进程及子进程;

export 命令:功能是用于将变量提升成环境变量,亦可将Shell函数输出为环境变量;

赋值方式:1、export 变量名=值;

                  2、变量名=值

                        export 变量名

                 3、declare -x 变量名=值;

                 4、变量名=值

                       declare -x 变量名

引用方式:$变量名、${变量名};

注意:bash内嵌了许多环境变量(通常为全大写字符),用于定义bash的工作环境;

例如:PATH、HISTFILE、HISTSIZE、HISTFILESIZE、HISTCONTROL、SHELL、HOME、UID、PWD、OLDPWD

查看环境变量:export,declare -x,printenv,env;

撤销环境变量:unset 变量名

只读变量:1、declare -r 变量名;2、readonly 变量名;

注意:只读变量无法重新赋值,并且不能撤销;存活时间为当前shell进程的生命周期,随shell进程终止而止;

局部变量:作用范围仅为某段代码片段(函数上下文);

位置参数:向执行脚本的shell进程传递参数;

特殊变量:shell内置的有特殊功用的变量;

例如:$?:保存命令执行结果;0:成功;1-255:失败;

bash特性:多命令执行;

~]# 命令1;命令2;

例如:echo $firstname;echo $twoname;

逻辑运算:

运算数:真(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=1;

       0 || 0=0; 

非:!1=0;

!!=1;

异或:不同

短路机制:

~]# 命令1  && 命令2;

与运算,在这个机制中命令1执行结果为假,则命令2不会执行;

否则命令1执行结果为真、则命令2必须执行;

~]# 命令1  || 命令2;

或运算,在这个机制中命令1执行结果为真,则命令2不会执行;

否则命令1执行结果为假、则命令2必须执行;

例如:~]# id $username ||  useradd $username 

如果变量username用户名不存在,则创建username用户;

 

 

 

 

posted on 2022-11-04 09:26  暮夜~  阅读(71)  评论(0编辑  收藏  举报

导航