bash特性之逻辑运算和shell脚本的编写

bash特性之多命令执行:

~]#  command1  $(command2)

~]#  command1  |  command2  ....  进程之间通信(IPC)

顺序执行结构:

~]#  command1  ; command2  ;......

选择执行结构:

逻辑运算

与:逻辑乘法, && ,双目运算符

0:success(成功) --->true

1-225:failure(失败) --->false

True  &&  true  =true

True  &&  false  =false

False  &&  true  =false

False  &&  false  =false

“与”运算的短路逻辑运算:只要第一个操作为false,则其逻辑运算的结果一定为false

command1  &&  command2

如果command1能够成功执行,则command2会被执行

如果command1执行失败,则command2不会被执行

!command1  &&  aommand2

如果command1能够成功执行,则command2不会被执行

如果command1执行失败,则command2才会被执行

或:逻辑加法, || ,双目运算符

True  ||  true  =true(成功)

True  ||  false  =true

False  ||  true  =true

False  ||  false  =false(失败)

“或”的短路逻辑运算,只要第一个操作系统为true,则其逻辑运算的结果一定为true

command1  ||  command2

只要command1能够成功执行,command2就没有必要执行了

只有当command1执行失败的时候,command2才会被执行

!command1  ||  aommand2

如果command1能够成功执行,则command2会被执行

如果command2执行失败,则command2不会被执行

非:逻辑取反, ! ,单目运算符

!STRING:读取命令历史空间的内容

!True   =   false

!False  =  true

!Command

!command1  &&  aommand2  相对于  command1  ||  command2

!command1  ||  aommand2  相对于  command1  &&  command2

摩根定律:

!(A  &&  B)= !  A  看,||  !  B

!(A  ||  B)= !  A  &&  !  B

逻辑运算符号优先级:

! >  &&  >  ||

异或:双目运算符

比对两个操作数是否不同,如果不同,则逻辑运算结果为真,如果相同,则逻辑运算结果为假

Shell脚本编程:

什么叫编程:编写程序源代码,为了能够让用户在使用计算机的时候,可以让计算机以非交互式的方式完成某些任务,需要将这些任务编制称为一个文件,让计算机顺序读取,从而实现功能。

编程语言:

高级语言:

根据源代码的处理方式:

编译运行语言:

源代码 ---> 编译器(编译) ---> 汇编器(汇编) ---> 链接器(库的链接)(不是必须) --->     可以直接执行的二进制文件

解释运行语言:

源代码 ---> 直接启动跟源代码对应的解释器程序,由解释器边解释边执行

根据其编程过程中的功能的实现是调用库还调用外部程序文件

完整编程语言:

利用库或编程组件进行编程

脚本编程语言:

解释器

Shell脚本,调用shell程序,其次调用需要的外部命令文件,命令解释器,提供了单一功能的编程接口,过程式编程逻辑的支持

根据程序的编写范式:指令 + 数据 = 程序    程序 = 算法 + 数据结构

过程式编程语言:

以指令(算法)为中心,围绕指令(算法)的实现设计数据和数据结构,数据为指令服务

算法或指令的实现形式:

顺序执行

选择执行

循环执行

对象式编程语言:

以数据为中心,将数据实例化为类,围绕着数据的需求来部署命令,

类,属性,方法

低级语言:

汇编语言

Shell脚本编程

过程式编程语言:解释运行的语言,依赖于外部程序文件的运行语言

Shell脚本是什么:

1. 纯文本文档

2. 根据用户的需求来解决用户问题的大量命令的组合体

3. “执行幂等性”------任何命令多次执行的结果是一致的

很多命令都不具备“执行幂等性”,在shell脚本中需要使用大量的程序逻辑来判断某个命令是否满足其运行条件,以避免在运行过程中出现严重错误

Shell脚本中代码内容:

1. 首行必须是shebang(解释器路径),必须占据绝对行首,在执行时,启动相应的解释器以解释脚本内诸多的命令,

#!/bin/bash(首行样本,前边不能有空格)

#!/bin/sh

#!/usr/bin/python

#!/usr/bin/per1

2. 在shell脚本中,除了shebang之外,以#占据绝对行首的内容,均为注释行,解释器会忽略这样的内容

3. 解释器会忽略脚本中所有的空白行

4. 大量的命令和关键字(if,else,then,while,for,....)

注意:shell脚本一旦运行,是在当前的shell中根据shebang的指示,开启一个解释器(子shell)来解散执行代码内容,shell脚本的内容是在一个子shell进程中实现的,

我们可以利用文本编辑工具来编写shell脚本

推荐使用:VIM

约定下,脚本文件名的后缀为.sh,也可以不加

脚本的运行方法:

1. 为脚本文件赋予执行权限,直接运行此文件

注意:如果在执行脚本时,只写脚本文件名不给出路径的话,必须确保PATH变量中保存的路径下,能找到该脚本文件,

2. 直接使用解释器运行脚本,将脚本作为解释器命令的参数:

Bash后边加个绝对路径

时间: 2024-12-29 12:11:24

bash特性之逻辑运算和shell脚本的编写的相关文章

工程师技术(五):Shell脚本的编写及测试、重定向输出的应用、使用特殊变量、编写一个判断脚本、编写一个批量添加用户脚本

一.Shell脚本的编写及测 目标: 本例要求两个简单的Shell脚本程序,任务目标如下: 1> 编写一个面世问候 /root/helloworld.sh 脚本,执行后显示出一段话"Hello World!!"   2> 编写一个能输出系统信息的 /root/sysinfo 脚本,执行后依次输出当前红帽系统的版本信息.当前使用的内核版本.当前系统的主机名 方案: 规范Shell脚本的一般组成: 1> #! 环境声明(Sha-Bang)    2> # 注释文本 

shell 脚本的编写

创建一个shell文件 1. 创建一个.sh文件 2. 文件第一行声明shell编译器路径  #!/bin/bash 3. 修改文件权限 chmod 777 文件名    或  /bin/bash  文件名 4. 执行   ./文件名 创建一个shell文件 编写一个进入目录的shell脚本 需要这样执行 ../1.sh      或       source  ./1.sh 原文地址:https://www.cnblogs.com/runlgs/p/9678752.html

bash配置与shell脚本编程

写在前面: 博客书写牢记5W1H法则:What,Why,When,Where,Who,How. 本篇主要内容: ● bash特征之多命令执行 ● 逻辑运算(与或非) ● 编程语言简介 ● shell脚本格式与特点 ● bash配置,定制bash工作特征 ● 扩展 intall mktemp 本篇涉及配置文件: ◎ /etc/profile ◎ /etc/profile.d/*.sh ◎ /etc/bashrc ◎ ~/.bash_profile ◎ ~/.bashrc ◎ ~/.bash_log

linux shell脚本中的开头#!/bin/bash的含义

对于linux上需要执行 的shell脚本,通常第一行的内容是 #!/bin/bash 当然有很多时候不规范的写法可以忽略掉这一句,执行起来好像也是ok,结果没什么不一样 .. 这只是因为在我们常用 的linux系统上默认都是执行/bin/bash来执行我们的shell脚本,但是如果有些用户使用的是csh,那么缺少第一行的“#!/bin/bash的shell脚本执行结果就可能存在语法不兼容的问题,导致结果异常或者根本不能执行. Shell脚本和我们常用的C语言或者C++语言编写编译出来的bin执

shell脚本总结

shell总结 shell脚本的本质是shell命令的有序集合 建立shell脚本的步骤:建立shell脚本,编写任意多行操作系统命令或shell命令,增加文件的执行权限,结束 shell变量 shell允许用户建立变量存储数据,但不支持数据类型.将任何赋给变量的值都解释为一串字符 shell有如下四种变量:用户自定义变量,位置变量,预定义变量,环境变量 用户自定义变量: 定义变量:COUNT=1 使用时前面加$:echo $COUNT 删除变量的赋值:unset COUNT 位置变量: $0 

shell脚本及正则表达式

shell脚本的编写及正则表达式: 一.shell脚本的基本: 1.首先shell脚本到底是什么? 1)纯文本文档--文件中所存储的数据都是以字符为单位进行存储的: 2)根据用户的需求来解决用户问题的大量命令的组合体 3)"执行幂等性"--任何命令多次执行的结果是一致的 注意:很多命令都不具备"执行幂等性",在shell脚本中就需要大量的程序逻辑来判断某个命令是否满足其运行条件,以避免在运行过程中出现严重错误. 2.脚本的基本代码内容: 1)首先我们可以利用文本编辑

跟着老刘学《Linux就该这么学》第五天--编写Shell脚本

编写Shell脚本可以将Shell终端解释器当作人与计算机硬件之间的"翻译官",它作为用户与Linux系统内部的通信媒介,除了能够支持各种变量与参数外,还提供了诸如循环.分支等高级编程语言才有的控制结构特性.要想正确使用Shell中的这些功能特性,准确下达命令尤为重要.Shell脚本命令的工作方式有两种:交互式和批处理. 交互式(Interactive):用户每输入一条命令就立即执行. 批处理(Batch):由用户事先编写好一个完整的Shell脚本,Shell会一次性执行脚本中诸多的命

shell脚本的基础学习

一.shell的历史 shell的作用是解释执行用户的命令,用户输入一条命令,shell就解释执行一条,这种方式称为交互式.     用户还有一种执行命令的方式叫做批处理,用户事先写一个shell脚本,其中有很多条命令,让shell一次性把这些命令执行完,而不必一条一条的敲命令. shell脚本和编程语言很相似,也有变量和流程控制语句,但是shell脚本是解释执行的,不需要进行编译,shell从脚本中一行一行读取并执行这些命令,相当于一个用户把脚本中的命令一行一行敲到shell提示符下执行. 二

shell脚本编程基础知识

Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务. Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell.bash是很多linux系统的默认shell. 下面开始写一个范例shell #!/bin/bashecho "Hello World