说明: 虚拟机中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. Vue初始化过程

    用vue也有一两年了,始终对vue一知半解,不怎么了解内部的执行过程,最近在看vue源码,还是不少收获的,其中不乏浏览器事件轮询机制.闭包.设计模式等,还是非常值得一读.本篇简要记录下vue的初始化过 ...

  2. QT--电子时钟

    QT--电子时钟 简介: 使用了绘图事件.定时事件,有两个窗口,一个窗口用于设置时间(主窗口),一个是时钟窗口 1.主窗口 menu.h文件: #ifndef MENU_H #define MENU_ ...

  3. Vue-cli脚手架 安装 并创建项目--命令

    检查是否有 node - v 安装Vue-cli npm install -g vue-cli 安装好后,执行 vue list可以看到很多实用的模板,我这里实用的webpack 初始化模板 vue ...

  4. windows重装系统后grub引导菜单修复方法(亲自实验过)

    问题: 电脑安装的是windows7+ubuntu 15.10双系统.windows重装后,grub引导界面消失. 解决方法有两大步: 1.进入ubuntu; 2.在ubuntu中修复grub. 一. ...

  5. 如何用Jpype创建HashMap和ArrayList

    近期在Python中使用java语言的时候有涉及到如何创建HashMap和ArrayList等容器,最开始的疑惑是,java里面的容器是有泛型做类型检测的,而在python中却没有泛型这个说法,那么如 ...

  6. SpringBoot开发准备工作,保存备用,

    application.properties server.port=8080 spring.thymeleaf.prefix = classpath:/static/ spring.thymelea ...

  7. Ubuntu16.04 GTX750安装CUDA9.0,Pytorch,Anaconda教程

    Ubuntu16 GTX750安装CUDA9.0,Pytorch,Anaconda教程 安装前警告 不要使用Ubuntu18! 不要使用Ubuntu18! 不要使用Ubuntu18! 务必重装成Ubu ...

  8. [译]Vulkan教程(05)Instance

    [译]Vulkan教程(05)Instance Creating an instance 创建一个instance The very first thing you need to do is ini ...

  9. Laravel-权限系统

    总结Auth中间件用于定义未登录用户只能操作哪些权限policy授权策略定义了当前用户实例与进行授权的用户是否匹配,一致才能进一步操作,否则返回403禁止访问异常场景:用户登录 Auth步骤 找到需要 ...

  10. ETCD:系统限制

    原文地址:System limits 请求大小限制 etcd被设计用来处理小键值对典型的如元数据.较大的请求数据也起作用,但可能会增加其他请求的延迟.默认情况下,任意的请求最大的空间为1.5MiB,这 ...