说明: 虚拟机中shell_test目录用来练习shell, 其中有个test.log文件用来存放日志

#!/usr/bin/bash      # shell文件开头, 用来指定该文件使用哪个解释器执行

 通常#!成为shebang, 如果命令行中不指定解释器时才会生效, 否则以命令行中指定的解释器为准

1. echo $?    # 用来检查上次命令的执行状态, 如成功返回0, 不成功则非0

2. ping -c10 www.baidu.com &> /shell_test/test.log && echo "ping 成功执行了" || echo "ping执行失败了"

  -c10  # 表示使用本机ping后面的网址10次

  &>    # 表示把命令执行的经过输入到指定的位置

  &&    # 命令执行成功后要干的事, 可理解为if true

  ||       # 命令执行失败后要干的事, 可理解为else

3. linux命令都可以放入文件中通过bash调用来执行, 或者把文件设置为可执行文件, 比如2中的命令放到

 qzq.sh文件中, 在命令行可使用: bash qzq.sh来调用, 其会自动执行文件中列出的命令, echo的内容会

 输出到窗口, 执行过程中的输出会写入到$>指定的地方.

 补充: 使用sh来调用执行可以, sh可理解为bash的软连接; 修改文件属相使用chmod命令. chmod 777 qzq.sh

4. if判断书写规范, if后跟条件或命令, 条件时需使用[], 条件true时执行then后逻辑. 如果跟命令, 则在命令成功

 执行后走then逻辑, 注意使用命令时不能使用[]. 编写规范如下(then可和if在一行;建议使用4个空格区分逻辑):

 

5. 在一段shell脚本中, 如何在中间插入执行一段python代码呢?

 /usr/bin/python << -EOF print("hello world") EOF   # 把需要执行的python脚本重定向到python解释器中即可.

 EOF就是个标记, 需要大写且成对, 可换成任意字母都行,通常结束位置的标记需要放到单独一行的行首.

-的用处可使得结束位置标记前可以有空格, 即不从行首开始.

 特别注意: EOF前有-时, 和输出重定向符号之前绝对不能有空格, 否则会报错的.

 

6. 一个有执行权限的shell脚本还可以通过 . qzq.sh  或者 source qzq.sh来执行, 区别如下: 使用相对位置执行或

 bash或sh时, 如shell中有cd目录, 这3中执行方式的窗口路径不会发生改变.因为是在sub shell 即子shell中执行;

 而. 或者source是在当前目录中执行脚本中的命令.

shell基础概念, if+命令, shell中引用python, shell脚本的几种执行方式的更多相关文章

  1. Shell脚本的三种执行方式

    Shell脚本的执行方式可以有以下几种: 方式一:  ./script.sh # 利用小数点来执行 方式二:  sh script.sh 或 bash script.sh # 利用bash(sh)来执 ...

  2. 在命令行中输入python会跳转到商店问题解决,python环境变量的配置

    安装python出了点问题,明明安装了,在应用商店显示已获取,可是在命令行输入python检验时就直接跳转到win10系统自带的应用商店...... 这不免让我怀疑是不是没有安装好python~但是它 ...

  3. spring事务——try{...}catch{...}中事务不回滚的几种处理方式(转载)

    转载自   spring事务——try{...}catch{...}中事务不回滚的几种处理方式   当希望在某个方法中添加事务时,我们常常在方法头上添加@Transactional注解 @Respon ...

  4. Linux笔记(shell基础,历史命令,命令补全/别名,通配符,输出重定向)

    一.shell 基础 shell是个命令解释器,提供用户和机器之间的交互 每个用户都可以拥有自己特定的shell centos7默认Shell为bash(Bourne Agin shell) 除了ba ...

  5. hbase shell基础和常用命令详解(转)

    HBase shell的基本用法 hbase提供了一个shell的终端给用户交互.使用命令hbase shell进入命令界面.通过执行 help可以看到命令的帮助信息. 以网上的一个学生成绩表的例子来 ...

  6. hbase shell基础和常用命令详解

    HBase是Google Bigtable的开源实现,它利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为协同服 ...

  7. Linux Shell基础 Bash常见命令 history、alias命令以及常用快捷键

    概述  shell中常见命令history 历史纪录命令:history 命令格式如下: [root@localhost ~]# history [选项] [历史命令保存文件] -c:清空历史命令: ...

  8. 【Shell脚本学习1】Shell简介:什么是Shell,Shell命令的两种执行方式

    Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的.Shell既是一种命令语言,又是一种程序设计语言.作为命令语言,它交互式地解释 ...

  9. 【转】shell 教程——01 Shell简介:什么是Shell,Shell命令的两种执行方式

    Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的.Shell既是一种命令语言,又是一种程序设计语言.作为命令语言,它交互式地解释 ...

随机推荐

  1. Windows10安装Elasticsearch IK分词插件

    安装插件 cmd切换到Elasticsearch安装目录下 C:\Users\Administrator>D: D:\>cd D:\Program Files\Elastic\Elasti ...

  2. linux终端 tty pty pts等

    linux终端 tty pty pts等 20140608 Chenxin整理 系统变量TERM不知是用来干什么的?它的值有vt100,vt220等,这些值代表什么意思? 环境变量TERM设置为终端机 ...

  3. Vue-Cli 3.0 中配置高德地图

    vue 中使用高德地图有两种方式 一.vue-amap 组件 官网: https://elemefe.github.io/vue-amap/#/ 开始的时候是打算用这个组件做地图功能的,但是尝试之后存 ...

  4. 【Spring Cloud】Spring Cloud Config 实现分布式配置中心

    Spring Cloud Config 实现分布式配置中心 一.分布式配置中心 分布式系统中,往往拥有大量的服务应用,而每个应用程序都需要有对应的配置文件来协助完成服务环境初始化.运行.因此生产了大量 ...

  5. 追踪SQL Server执行delete操作时候不同锁申请与释放的过程

    一直以为很了解sqlserver的加锁过程,在分析一些特殊情况下的死锁之后,尤其是并发单表操作发生的死锁,对于加解锁的过程,有了一些重新的认识,之前的知识还是有一些盲区在里面的.delete加锁与解锁 ...

  6. windows系统搭建zookeeper

    安装&配置 在apache的官方网站提供了好多镜像下载地址,然后找到对应的版本 下载地址: http://mirrors.cnnic.cn/apache/zookeeper/zookeeper ...

  7. 跨平台版本迁移之 XTTS 方案操作指南

    本文转自 https://blog.csdn.net/Enmotech/article/details/80045576 作者 | 罗贵林: 云和恩墨技术工程师,具有8年以上的 Oracle 数据库工 ...

  8. pytest系列(一):什么是单元测试界的高富帅?

    pytest是python语言中一款强大的单元测试框架,用来管理和组织测试用例,可应用在单元测试.自动化测试工作中. unittest也是python语言中一款单元测试框架,但是功能有限,没有pyte ...

  9. java对 zip文件的压缩和解压(ant解决中文乱码)

    说明: 1.对于压缩的文件,当文件名称是中文时,若使用JDK API中自带的类(java.util.zip.ZipEntry; java.util.zip.ZipOutputStream;)进行压缩, ...

  10. Python3 获取系统资源

    cpu disk mem import osimport psutilos.chdir(os.getcwd()) #cpu def get_cpu_info(): cpu_percent=psutil ...