Linux sh、source和.命令执行.sh文件的区别
sh文件介绍
.sh为Linux的脚本文件,我们可以通过.sh执行一些命令,可以理解为windows的.bat批处理文件。
点命令
.命令和source是同一个命令,可以理解为source的缩写,简称点命令。
sh、source和.命令执行.sh文件的区别
假如有一个文件test.sh,脚本内容如下
#!/bin/bash
echo "step 1 sleeping"
sleep 200
echo "step 2 sleeping"
sleep 200
那么,现在按以下4种方式执行:
1)./test.sh
2)sh test.sh
3). test.sh
4)source test.sh
他们有何区别?
1)第一种方式,是在当前的shell执行脚本本身,也就是说把test.sh当成一个文件执行,这时候我们需要拥有test.sh的运行权限(x权限),而且当我们在执行此命令时,有2个新进程在运行,一个是test.sh,一个是sleep,如果我们在执行第一个sleep时按ctrl+c终止脚本,test.sh和sleep一起终止,并且第二个sleep不会执行,因为整个test.sh运行已经终止。
2)第二种方式,是新建一个shell执行test.sh脚本里面的命令,不需要执行权限,有读取权限(r权限)即可,在执行此命令时,有2个新进程在运行,一个是bash,一个是sleep,如果执行第一个sleep时按ctrl+c,bash被终止,结果和第一种方式一样,第二个sleep不会执行。
3)第三种方式,是在当前shell执行test.sh里面的命令,不需要执行权限,有读取权限(r权限)即可,在执行此命令时,只有一个新进程在运行,就是sleep,如果在执行第一个sleep时按ctrl+c终止,那么第二个sleep接着运行,直到脚本所有命令执行完。
4)第四种方式和第三种方式一致。
博客出处:http://www.zengdongwu.com/article3.html
Linux sh、source和.命令执行.sh文件的区别的更多相关文章
- MySQL命令执行sql文件的两种方法
MySQL命令执行sql文件的两种方法 摘要:和其他数据库一样,MySQL也提供了命令执行sql脚本文件,方便地进行数据库.表以及数据等各种操作.下面笔者讲解MySQL执行sql文件命令的两种方法,希 ...
- 在Linux下如何限制命令执行的时间?
在Linux下如何限制命令执行的时间?两种解决方法,如下: 1: Linux命令——timeout 运行指定的命令,如果在指定时间后仍在运行,则杀死该进程.用来控制程序运行的时间. 2: comman ...
- PHP命令执行php文件需要注意的问题
PHP命令执行php文件需要注意的问题 require_once '/data/fewfawef/wwwroot/Public/queenchuli/common/mysql.php';里面必须要写绝 ...
- bash deploy.sh 通过bash命令 执行scp -r 命令将本地文件拷贝到服务器
deploy.sh 文件内容如下 #!/bin/bash #scp -r ./* root@XXXXX:/root/sunSH/xadserver/ function getdir(){ for el ...
- shell中的source和直接执行sh的区别
首先我们知道我们执行shell有这么几种方法 1. sh/bash使用其内置的命令集来执行一些命令,例如如下 sh demo.sh bash demo.sh 2. 使用./或者/$SHELLPATH/ ...
- linux下使用shell 自动执行脚本文件
以下实例本人在Centos6.5 64位操作系统中使用 一.定时复制文件 a.在/usr/local/wfjb_web_back目录下创建 tomcatBack.sh文件 文件内容: #将tomcat ...
- Linux中利用grep命令如何检索文件内容详解
前言 Linux系统中搜索.查找文件中的内容,一般最常用的是grep命令,另外还有egrep命令,同时vi命令也支持文件内容检索.下面来一起看看Linux利用grep命令检索文件内容的详细介绍. 方法 ...
- Linux下通过find命令进行rm文件删除的小技巧
我们常常会通过find命令进行批量操作.如:批量删除旧文件.批量改动.基于时间的文件统计.基于文件大小的文件统计等.在这些操作其中,因为rm删除操作会导致文件夹结构变化,假设要通过find结合r ...
- Linux系统下curl命令上传文件,文件名包含逗号无法上传
使用curl命令,将备份好的图片全部重新导入到seaweedfs,图片全部以存储在seaweedfs中的fid命令, fid中间有一个逗号,使用curl命令时报错: curl: (26) couldn ...
随机推荐
- 【2019.7.26 NOIP模拟赛 T3】化学反应(reaction)(线段树优化建图+Tarjan缩点+拓扑排序)
题意转化 考虑我们对于每一对激活关系建一条有向边,则对于每一个点,其答案就是其所能到达的点数. 于是,这个问题就被我们搬到了图上,成了一个图论题. 优化建图 考虑我们每次需要将一个区间向一个区间连边. ...
- 使用Qiniu-JavaScript-SDK上传文件至七牛云存储
一.Qiniu-JavaScript-SDK介绍 基于 JS-SDK 可以方便的从浏览器端上传文件至七牛云存储,并对上传成功后的图片进行丰富的数据处理操作. JS-SDK 兼容支持 H5 File A ...
- 网络流 之 dinic 算法
网络流指的是:网络流(network-flows)是一种类比水流的解决问题方法.(类似于水管群,有一个源点(水无限多),和一个汇点,最大流就代表这个点水管群(边集)每秒最大能送道汇点的水量) 这个怎么 ...
- 【mysql】修改mysql数据库密码
修改mysql数据库密码 操作系统:Linux centos7 数据库:mysql5.7 一.在已知MYSQL数据库的ROOT用户密码的情况下,修改密码 1.在Linux命令行,使用mysqladmi ...
- Exercises for IN1900
Exercises for IN1900October 14, 2019PrefaceThis document contains a number of programming exercises ...
- POJ-1129 DFS染色+四色原理的应用
OJ-ID: POJ-1129 author: Caution_X date of submission: 20190927 tags: DFS+四色原理的应用 descri ...
- CompletableFuture1
public class CompletableFutureTest { public static void main(String[] args) throws Exception { test5 ...
- Autoware 笔记 No. 5——基于GNSS的定位
1. 前言 在之前的笔记No.2 中,我们直接采用ndt_matching的方法实现定位,但需要在打开rviz中,通过2D Pose Estimate指定初始位置.加入GNSS后,可以帮助ndt_ma ...
- Microsoft.Extensions.DependencyInjection 之一:解析实现
[TOC] 前言 项目使用了 Microsoft.Extensions.DependencyInjection 2.x 版本,遇到第2次请求时非常高的内存占用情况,于是作了调查,本文对 3.0 版本仍 ...
- Spring源码系列 — 构造和初始化上下文
探索spring源码实现,精华的设计模式,各种jdk提供的陌生api,还有那么点黑科技都是一直以来想做的一件事!但是读源码是一件非常痛苦的事情,需要有很大的耐心和扎实的基础. 在曾经读两次失败的基础上 ...