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既是一种命令语言,又是一种程序设计语言.作为命令语言,它交互式地解释 ...
随机推荐
- Logo(图片)作为报表水印的解决方法
概述 在<像 word 一样增加水印功能>中,已经介绍了如何在润乾报表中增加文字水印功能,包括了静态及动态水印.水印功能将标识信息嵌入到报表载体后,使得信息安全.版权保护有了更有效的方法. ...
- 搭建部署Docker
Docker安装准备: 首先看下服务器是否有旧版本,如果有需要卸载并且安装依赖 yum remove docker docker-client docker-client-latest docker- ...
- 完全卸载Android Studio(卸载得干干净净)
步骤其实很简单,一共三步,但是每一步都需要完成,步骤如下: 打开控制面板或腾讯软件管家等执行常规的卸载操作. 找到SDK的安装目录手动删除SDK. 进入“C:\Users\<你的用户名下> ...
- JS PopupAlert
JS PopupAlert 可以在 JavaScript 中创建三种消息框:警告框.确认框.提示框. 警告框 警告框经常用于确保用户可以得到某些信息. 当警告框出现后,用户需要点击确定按钮才能继续进行 ...
- Maven详解(非原创)
文章大纲 一.maven功能介绍二.maven整合javaweb案例三.私服应用(了解)四.总结五.相关资料下载六.参考文章 一.maven功能介绍 1. maven基本介绍 Maven的Apac ...
- MongoDB用户验证和权限管理
官方参考页面: https://docs.mongodb.com/v3.6/tutorial/enable-authentication/ https://docs.mongodb.com/v3.6/ ...
- SQL Server之批量清理数据库的死锁
DECLARE killspid CURSOR FOR (SELECT CONVERT(VARCHAR(100), request_session_id) FROM sys.dm_tran_l ...
- 阿里云ECS服务器部署HADOOP集群(六):Flume 安装
本篇将在阿里云ECS服务器部署HADOOP集群(一):Hadoop完全分布式集群环境搭建的基础上搭建. 1 环境介绍 一台阿里云ECS服务器:master 操作系统:CentOS 7.3 Hadoop ...
- MySQL数据库:函数的应用
字符串截取 # 从左边开始 第1个字符 left(字段名,1) # 从那里开始,截取几个 substring(字段名,1,1) str函数 # 连接字符串 concat(s1,s2,s3,--,sn) ...
- 12-《Node.js开发指南》-核心模块
全局对象 Node.js中的全局对象是global 所有全局变量(除了global本身以外)都是global对象的属性 最根本的作用为全局变量的宿主 全局变量 //满足以下条件的是全局变量 a.在最外 ...