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

相关推荐

  • rpm包及rmp命令详解

    一、软件运行环境           API: Application Programming Interface              国际标准&nbs…

    Linux干货 2016-08-22
  • 数据库基础

    数据库基础 一、数据模型 数据库模型图 1、层次模型、2、网状模型、 3、关系模型二维关系: 表:就是一个关系及属性的描述,如:学生(学好,姓名,性别,班级)       行:row, entity       列:colume,…

    Linux干货 2016-10-19
  • 软件包管理器之一——RPM介绍及应用

    一、前言:     在没有软件包管理器前,用户都是通过源代码的方式来安装软件。但是我们很容易发现,在每次安装软件时都必须对操作系统的境、编译的参数进行对应的编译,并且操作过程很是复杂,这对于不熟悉操作系统的朋友来说真心困难,那么有没有一款软件能让用户能很简单的安装所需的软件呢?    &n…

    Linux干货 2015-07-20
  • Linux基础知识(六)

    本问主要讲述Linux的基础知识,具体包一下内容: 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; cp /etc/rc.d/rc.sysinit /tmp sed "s/^[[:space:]]\?/#/g" /tmp/rc.sysini…

    Linux干货 2016-10-30
  • LVS详解及基于LVS实现web服务器负载均衡

    前言 LVS(Linux Virtual Server)Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。通过LVS提供的负载均衡技术和Linux操作系统可实现一个高性能、高可用的服务器群集,从而以低成本实现最优的服务性能。 集群基础 集群简介 集群(Cluster)是一组相互独立…

    Linux干货 2015-06-01
  • Linux命令帮助的获取

    帮助命令 1. 使用帮助命令和帮助选项来获取帮助 2. 使用man来查看命令使用手册(manual) 3. 使用info来查看命令的信息页 4. 程序自身的帮助文档(README/INSTALL/ChangeLog) 5. 程序官方文档(官方站点:Documentation) 6. 发行版的官方文档…

    Linux干货 2016-06-01