Linux中两种脚本执行方式的区别:. xx 和 ./xx

今天继续在看Building Linux Embedded Systems一书,进入第四章,有一些实际的操作,其中在介绍了良好的组织架构(文件夹)后,建议些一个script可以进行不同的开发环境。里面很简单,包括一个export和cd的命令,这个脚本假设为

export PROJECT=/home/aaa/project1

cd $PROJECT

并取名字为 test

我执行$ ./test,发现没有效果,然后在里面增加两个跟踪语句,如下

export PROJECT=/home/aaa/project1

echo $PROJECT

cd $PROJECT

pwd

能够正确执行,并pwd能够指向期待的路径。但是./test脚本执行完之后,设置的环境没有保留,恢复原来的环境,恢复到原来的当前目录,也清空了PROJECT的内容。

所以:如果需要环境一直生效,需要. test。我们根据所需,执行.xx或者./xx,.xx能够保留shell中的执行环境或者结果,而./xx不能

时间: 2024-08-08 05:39:00

Linux中两种脚本执行方式的区别:. xx 和 ./xx的相关文章

Hibernate两种获得sessionFactory方式的区别

Hibernate 可以通过sessionFactory.openSession()和sessionFactory.getCurrentSession()来获得session,下面来浅说一下两者区别. [sessionFactory.openSession()]     通过session工厂sessionFactory.openSession()方法来获得一个session,每次都创建一个新的session出来,并且每次Hibernate都会打开数据库和应用程序的连接. [sessionFac

Form表单中method=post/get两种数据传输的方式的区别

Form提供了两种数据传输的方式—get和post,Form中的get和post方法,在数据传输过程中分别对应了HTTP协议中的GET和POST方法,感兴趣的朋友可以了解下,或许对你学习get/post有所帮助 Form提供了两种数据传输的方式——get和post.虽然它们都是数据的提交方式,但是在实际传输时确有很大的不同,并且可能会对数据产生严重的影响.虽然为了方便的得到变量值,Web容器已经屏蔽了二者的一些差异,但是了解二者的差异在以后的编程也会很有帮助的. Form中的get和post方法

Java中两种实现多线程方式的对比分析

本文转载自:http://www.linuxidc.com/Linux/2013-12/93690.htm#0-tsina-1-14812-397232819ff9a47a7b7e80a40613cfe1 Java中有两种实现多线程的方式.一是直接继承Thread类,二是实现Runnable接口.那么这两种实现多线程的方式在应用上有什么区别呢? 为了回答这个问题,我们可以通过编写一段代码来进行分析.我们用代码来模拟铁路售票系统,实现通过四个售票点发售某日某次列车的100张车票,一个售票点用一个线

javascript中两种定义函数方式的差别以及函数的预编译效果

我们知道在javascript中定义函数的方式有以下两种: function mm(){ } 这种形式是声明一个函数,跟 var 声明一个变量机制一样,脚本在解释执行之前会做预编译处理. var mm = function(){ } 这种形式是对一个变量赋值,虽然也做预编译,但仅仅只是给 mm 事先变量分配一个内存空间,而没有做初始化. 代码1: alert(a);//打印函数a的内存 alert(b);//undefined alert(c);//JS报错:"c"未定义 functi

Java中String两种不同创建方式的区别及intern的用法

一, Java有两种创建字符串的方式, String str1 = "abc"; String str2 = new String("abc"); 用双引号创建和用new来创建.这两种方式创建出来的String存储的位置上不同的.当使用双引号方式时,相当于显式的声明了字符串的值(字面值),所以是作为一个常量,存储在方法区的常量池中.使用new方式来创建String时,JVM会在堆上分配一块区域,存储一个String对象,值为“abc”. 二, String的==和e

ansible的两种命令执行方式 : ad-hoc / playbook以及通过setup模块获取系统参数

一.什么是ad-hoc和playbook  ad-hoc : 如果我们敲入一些命令去快速的完成一些操作,而不需要将这些执行过的命令刻意保存下来,这样的命令就叫做as-hoc命令,这里不做过多赘述. playbook : 简单的说,playbook是一种简单的配置管理系统与多机器部署系统的基础.与现有的其它系统有不同之处,且非常适用于复杂的应用部署.playbook可适用于声明配置,更强大的地方在于playbook中可以编排有序的执行过程,甚至于做到在多组机器间来回有序的执行特别指定的步骤,并且可

Apache中3种MPM工作方式的区别及配置详解

MPM是Multi-Processing Modules,表示Apache中的多路处理模块,目前在Linux上的Apache2.2/2.4中包括三种模式:prefork.worker和event模式.apache或httpd的命令参数"-l"即可列出当前apache中已经编译了的模块,由于MPM只能在编译时指定其中一种,所以列出的静态模块中MPM只有1个,如下所示: # httpd -l Compiled in modules: core.c prefork.c    #说明使用的是p

jQuery中两种阻止事件冒泡的区别

方式一:event.stopPropagation(); 方式二:return false; 但是这两种方式是有区别的.return false 不仅阻止了事件往上冒泡,而且阻止了事件本身.event.stopPropagation() 则只阻止事件往上冒泡,不阻止事件本身. 例子: 当文本输入框获取焦点后,在div1的mousedown事件中采用 event.stopPropagation(); 代码,我们鼠标单击红色区域后文本输入框光标失去.而当我们使用 return false; 代码时,

Vue中两种跳转方式

第一种:通过标签跳转,<router-link></router-link> 第二种:通过js跳转,定义点击事件进行跳转 原文地址:https://www.cnblogs.com/zlwei23/p/10981215.html