原文地址:http://blog.csdn.net/onlyqi/article/details/7191456

关于两种运行sh的方式: ./myscript.ksh and . ./myscript.ksh

这个问题困扰我很久很久了。。。有时候用这个就行,有时候用那个才行,到底有什么区别?

Difference Between executing like ./myscript.ksh and . ./myscript.ksh (两个点之间有空格)

我参考了下面这两篇帖子:

http://www.unix.com/unix-dummies-questions-answers/156460-difference-between-executing-llike-myscript-ksh-myscript-ksh.html

http://publib.boulder.ibm.com/infocenter/zvm/v5r4/index.jsp?topic=/com.ibm.zvm.v54.dmsp3/comd672.htm

. myscript.ksh的意思是,Run a shell file in the current environment。

也就是说executes ksh in current shell.  Since it's run in the current shell, any variables it sets, for example, are available in your current shell.

但我们常用的形式是. ./myscript.ksh (中间有空格). 这是因为文件名的缘故:

If there are slashes in the file name, . (dot) looks for the named file. If there are no slashes . (dot) uses the search PATH variableto find file.

This may surprise some people when they use dot torun a file in the working directory, but their search rules are not set upto look at the working directory. As a result, the shell doesn't find theshell file. If you have this problem, you can use:

. ./myscript.ksh

因此上句的意思就是,使用current environment运行这个脚本,同时,在工作目录搜索该脚本。

所以现在很清楚了, ./myscript.ksh的意思是执行当前工作目录中的这个脚本,但是是在不同的shell中。

二者的不同会导致一个明显的区别:

如果在一个ksh中设置了一些变量,然后调用了:

ksh `. ./myscript.ksh` 那么之前设置的变量可以在子脚本,即myscript.ksh中使用。

如果调用的是:

ksh `./myscript.ksh` 那么之前设置的变量不能在myscript.ksh中使用。

注意:(1) .[空格]./temp/test.ksh     执行当前目录temp目录下的test.ksh文件 或者.[空格]temp/test.ksh

      .[空格]/temp/test.ksh  只有一个点,执行系统目录/temp下的test.ksh文件

关于两种运行sh的方式: ./myscript.ksh and . ./myscript.ksh相关推荐

  1. 二阶段补充:文件上传服务端处理,后端文件上传、前端两种文件上传方式

    1.文件上传 2.后端文件上传 两种方案: 兼容性较好的commons-fileupload,支持所有版本的Servlet,即所有版本的Tomcat 优点: 兼容性 缺点 需要外部jar,比较麻烦.代 ...

  2. 两种获取connectionString的方式

    两种获取connectionString的方式 1. public static string connectionString = ConfigurationManager.ConnectionSt ...

  3. Hibernate中两种获取Session的方式

    转自:https://www.jb51.net/article/130309.htm Session:是应用程序与数据库之间的一个会话,是hibernate运作的中心,持久层操作的基础.对象的生命周期 ...

  4. 在计算机系统中有两种不同的图像编码方式,第二章计算机系统与计算原理.ppt...

    第二章计算机系统与计算原理 大学计算机基础 * 信息表示与处理 ----西文字符 ASCII 码是美国信息交换标准代码(American Standard Code for Information I ...

  5. TF之RNN:TF的RNN中的常用的两种定义scope的方式get_variable和Variable

    TF之RNN:TF的RNN中的常用的两种定义scope的方式get_variable和Variable 目录 输出结果 代码设计 输出结果 代码设计 # tensorflow中的两种定义scope(命 ...

  6. spark on mesos 两种运行模式

    spark on mesos 有粗粒度(coarse-grained)和细粒度(fine-grained)两种运行模式,细粒度模式在spark2.0后开始弃用. 细粒度模式 优点 spark默认运行的 ...

  7. matlab安装程序无法启动jvm_天呀!JVM居然还有2两种运行模式

    概述 JVM有两种运行模式Server与Client.两种模式的区别在于,Client模式启动速度较快,Server模式启动较慢:但是启动进入稳定期长期运行之后Server模式的程序运行速度比Clie ...

  8. python用outlook自动发邮件_python使用两种发邮件的方式smtp和outlook示例

    smtp是直接调用163邮箱的smtp服务器,需要在163邮箱中设置一下.outlook发送就是Python直接调用win32方式.调用程序outlook直接发送邮件. import win32com ...

  9. oracle单列转行,oracle 两种列转行的方式

    oracle两种列转行的方式 select  baseItem.SUIT_TO, wmsys.wm_concat(to_char(dict.DICT_VALUE)) as dicv from T_ST ...

  10. 基于ArcGIS JS API实现的两种距离和面积测量方式

    文章目录 前言 开发思路 主要代码 效果测试 效果图 测试页面 开发总结 参考链接 前言 在一些地图地图应用中,距离.面积测量属于基础功能.ArcGIS API for JavaScript有单独提供 ...

最新文章

  1. [20150113]关于oracle的存储结构.txt
  2. java list类型参数_java – List是一个原始类型.引用通用类型List应该参数化
  3. TCP 通信过程中各步骤的状态
  4. 石大在线c语言在线考试填空题答案,奥鹏石大远程在线考试《钻井工程》-参考答案...
  5. Python开发还在用virtualenv?不如了解下pipenv...#华为云·寻找黑马程序员#
  6. tomcat集群的failover机制
  7. 最近要使用User Interface Process Application Block for .NET(微软net开发架构)
  8. 渝粤题库 陕西师范大学 《文字学概论》作业
  9. PHP月考---给自己建个错题本
  10. 塞拉利昂首次秘密进行基于区块链的总统选举
  11. 第三方支付(微信支付)支付流程分析
  12. C++运动会分数统计系统
  13. DolphinScheduler 3.0.0-alpha 安装问题
  14. css怎么随着鼠标移动,利用CSS sprites制作随着鼠标移动的动画背景
  15. 房间类游戏后台框架(一)—介绍
  16. 妈蛋!HR你搞我,我的缺点就是身体不好不能加班,怎么了?
  17. 维基百科,20岁生日快乐
  18. 成长的代价和教育的意义
  19. 阿里中间件seata源码剖析六:TCC模式中2阶段提交实现
  20. python画风场图_三招搞定炫酷的风场(流场)图

热门文章

  1. java 苹果支付(内购)
  2. c语言是非结构化程序语言_C语言是一种非结构化程序设计语言。
  3. 七.OpenCv图像轮廓
  4. 程序员容易的疾病之干眼症(治疗篇)
  5. 优秀博士生和普通博士生差距能有多大?
  6. 软件工程的完整生命周期
  7. 微信小程序开发-view视图组件
  8. 最大化 LoRa 长距离,秘籍2:接收灵敏度
  9. Latex中的括号用法总结
  10. Win10客户端 ssh 远程连接 win server 2008 R2服务器