shell基础概念, if+命令, shell中引用python, shell脚本的几种执行方式
说明: 虚拟机中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脚本的几种执行方式的更多相关文章
- Shell脚本的三种执行方式
Shell脚本的执行方式可以有以下几种: 方式一: ./script.sh # 利用小数点来执行 方式二: sh script.sh 或 bash script.sh # 利用bash(sh)来执 ...
- 在命令行中输入python会跳转到商店问题解决,python环境变量的配置
安装python出了点问题,明明安装了,在应用商店显示已获取,可是在命令行输入python检验时就直接跳转到win10系统自带的应用商店...... 这不免让我怀疑是不是没有安装好python~但是它 ...
- spring事务——try{...}catch{...}中事务不回滚的几种处理方式(转载)
转载自 spring事务——try{...}catch{...}中事务不回滚的几种处理方式 当希望在某个方法中添加事务时,我们常常在方法头上添加@Transactional注解 @Respon ...
- Linux笔记(shell基础,历史命令,命令补全/别名,通配符,输出重定向)
一.shell 基础 shell是个命令解释器,提供用户和机器之间的交互 每个用户都可以拥有自己特定的shell centos7默认Shell为bash(Bourne Agin shell) 除了ba ...
- hbase shell基础和常用命令详解(转)
HBase shell的基本用法 hbase提供了一个shell的终端给用户交互.使用命令hbase shell进入命令界面.通过执行 help可以看到命令的帮助信息. 以网上的一个学生成绩表的例子来 ...
- hbase shell基础和常用命令详解
HBase是Google Bigtable的开源实现,它利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为协同服 ...
- Linux Shell基础 Bash常见命令 history、alias命令以及常用快捷键
概述 shell中常见命令history 历史纪录命令:history 命令格式如下: [root@localhost ~]# history [选项] [历史命令保存文件] -c:清空历史命令: ...
- 【Shell脚本学习1】Shell简介:什么是Shell,Shell命令的两种执行方式
Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的.Shell既是一种命令语言,又是一种程序设计语言.作为命令语言,它交互式地解释 ...
- 【转】shell 教程——01 Shell简介:什么是Shell,Shell命令的两种执行方式
Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的.Shell既是一种命令语言,又是一种程序设计语言.作为命令语言,它交互式地解释 ...
随机推荐
- Vue初始化过程
用vue也有一两年了,始终对vue一知半解,不怎么了解内部的执行过程,最近在看vue源码,还是不少收获的,其中不乏浏览器事件轮询机制.闭包.设计模式等,还是非常值得一读.本篇简要记录下vue的初始化过 ...
- QT--电子时钟
QT--电子时钟 简介: 使用了绘图事件.定时事件,有两个窗口,一个窗口用于设置时间(主窗口),一个是时钟窗口 1.主窗口 menu.h文件: #ifndef MENU_H #define MENU_ ...
- Vue-cli脚手架 安装 并创建项目--命令
检查是否有 node - v 安装Vue-cli npm install -g vue-cli 安装好后,执行 vue list可以看到很多实用的模板,我这里实用的webpack 初始化模板 vue ...
- windows重装系统后grub引导菜单修复方法(亲自实验过)
问题: 电脑安装的是windows7+ubuntu 15.10双系统.windows重装后,grub引导界面消失. 解决方法有两大步: 1.进入ubuntu; 2.在ubuntu中修复grub. 一. ...
- 如何用Jpype创建HashMap和ArrayList
近期在Python中使用java语言的时候有涉及到如何创建HashMap和ArrayList等容器,最开始的疑惑是,java里面的容器是有泛型做类型检测的,而在python中却没有泛型这个说法,那么如 ...
- SpringBoot开发准备工作,保存备用,
application.properties server.port=8080 spring.thymeleaf.prefix = classpath:/static/ spring.thymelea ...
- Ubuntu16.04 GTX750安装CUDA9.0,Pytorch,Anaconda教程
Ubuntu16 GTX750安装CUDA9.0,Pytorch,Anaconda教程 安装前警告 不要使用Ubuntu18! 不要使用Ubuntu18! 不要使用Ubuntu18! 务必重装成Ubu ...
- [译]Vulkan教程(05)Instance
[译]Vulkan教程(05)Instance Creating an instance 创建一个instance The very first thing you need to do is ini ...
- Laravel-权限系统
总结Auth中间件用于定义未登录用户只能操作哪些权限policy授权策略定义了当前用户实例与进行授权的用户是否匹配,一致才能进一步操作,否则返回403禁止访问异常场景:用户登录 Auth步骤 找到需要 ...
- ETCD:系统限制
原文地址:System limits 请求大小限制 etcd被设计用来处理小键值对典型的如元数据.较大的请求数据也起作用,但可能会增加其他请求的延迟.默认情况下,任意的请求最大的空间为1.5MiB,这 ...