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 00:50
下一篇 2016-12-23 01:00

相关推荐

  • shell四剑客之sed

    概述 Stream EDitor, 行编辑器 sed是一种流编辑器,它一次处理一行内容。处理时,把 当前处理的行存储在临时缓冲区中,称为“模式空间”( pattern space),接着用sed命令处理缓冲区中的内容 ,处理完成后,把缓冲区的内容送往屏幕。接着处理下一 行,这样不断重复,直到文件末尾。文件内容并没有改变 ,除非你使用重定向存储输出。Sed主要…

    Linux干货 2016-08-15
  • Linux基础–命令帮助的获取及history历史命令

    第一部分    Linux系统如何获取命令帮助     1、命令类型以及简单帮助的获取         linux系统上,基本命令分为两类,一类是内建命令,一类是外部命令。所谓内建命令,是指由linux内核自带的系统命令…

    Linux干货 2016-07-28
  • 庆祝马哥成为51cto学院Linux运维金牌讲师第一人

    讲师何其多,金牌只一人(2016免费课程在底部) 某天,小编听到: linuxer1:听说51CTO学院评出了一个Linux金牌讲师!只有一人呢! linuxer2:用腿想,就知道肯定是马哥喽! linuxer3:前段时间马哥又分享了2016最新课时,限时免费学习呢!10086个赞!我和我的好基友们都在学习! linuxer4:马哥的51CTO课程学员都两百…

    2016-04-14
  • Linux运维实战之2-2:bash的工作特性

    这次博文我们主要来谈谈bash的工作特性哈。 主要内容: bash是一种shell解释程序     bash工作特性之命令状态返回值 bash工作特性之命令行展开 bash工作特性之命令补全 bash工作特性之路径补齐 bash工作特性之命令引用 bash工作特性之命令别名 bash工作特性之文件名通配 bash工作特性之命令hash 问…

    Linux干货 2016-11-06
  • 早安,Linux

    希望能通过不断的努力,变成一个不一样的我。

    Linux干货 2017-07-11
  • 分布式存储 Mogilefs 部署

    MogileFS是一个开源的分布式存储的解决方案,主要工作组件由三部分组成:Tracker节点:生成映射表存储于DB,并用于接收客户端请求,通过查询数据库对客户端提供后端所存储的真实文件位置DB节点:主要存储数据的元数据信息,可以理解为客户端来获取数据文件时提供的Key和真实存在存储里面的文件名的对照表Storage节点:用于存储文件的节点。工作流程,tra…

    2017-03-04