bash变量和逻辑运行

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

(1)
shadowshadow
上一篇 2016-12-23
下一篇 2016-12-23

相关推荐

  • class14磁盘管理(一)

    一、硬盘基础知识及分区类型 1、磁盘结构 设备文件 I/O Ports: I/O 设备地址 一切皆文件:   open(), read(), write(), close() 设备类型: 块设备:block,存取单位“块”,磁盘 字符设备:char,存取单位“字符”,键…

    Linux干货 2016-08-29
  • N21沉舟11周作业

    1、请描述一次完整的http请求处理过程; (1) 建立或处理连接:接收请求或拒绝请求 (2) 接收请求: (3) 处理请求:对请求报文进行解析,并获取请求的资源及请求方法等相关信息 (4) 访问资源:获取请求报文中请求的资源 (5) 构建响应报文 (6) 发送响应报文 (7) 记录日志 …

    Linux干货 2016-09-26
  • 学习札记:用户管理,权限管理和ACL欢乐”斗地主”

    补充:touch /etc/nologin 启动系统维护功能,其他用户不能登陆,除了管理员,可以自定义内容,在普通用户登陆的时候可以看到相关维护提示,解除维护模式的话,必须要删除该文件,另外可以创建/run/nologin达到相同的效果(仅限于CentOS 7), 用户属性修改 usermod [OPTION] login -u UID: 新UID -g G…

    Linux干货 2016-08-04
  • Linux基础命令 -管道密切配合使用 tee

    基础命令和管道密切配合使用  tee     基础命令:tee   tee命令 功能: 把命令1的STDOUT保存在文件名中,然后管道输入给命令2; 补充说明:tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。 使用场景: 1.保存不同阶段的输出 2.复杂管道的故障排除 3.同时查看和记录…

    Linux干货 2016-08-03
  • 磁盘管理详解

    linux系统如何识别硬盘 硬盘类型:        按接口可划分为        并行             &nb…

    Linux干货 2016-08-29
  • 马哥教育网络班21期+第15周课程练习

    1、总结sed和awk的详细用法; sed 流编辑器,处理一行数据到模式空间(p),不匹配条件话就输出源行,匹配条件且有处理话,就输出处理过后的行和源行, 匹配条件且没有处理动作的话,只输出p空间的行;保持空间(h)用来存放模式空间的临时处理结果 [root@centos ~]# sed ''&nb…

    Linux干货 2016-08-30